精华内容
下载资源
问答
  • 每天一篇设计教程分享给你,与你一起成长。 所用软件为:PSCC2018版本,还没有这个软件的小伙伴们可以给我留言!喜欢的小伙伴记得关注噢。

    每天一篇设计教程分享给你,与你一起成长。

    所用软件为:PSCC2018版本,还没有这个软件的小伙伴们可以给我留言!

    喜欢的小伙伴记得关注噢。


    展开全文
  • 由于项目需要,我需要开发一个和它们标准关注按钮一样的按钮,尽可能实现一样的效果。 思路 既然是已经有的标准按钮,那么我们可以先看一下它的行为。 在关注之前,这个按钮长这样。 关注之后,按钮的背景色消失...
    前言

    lwc是Salesforce的新一代基于ES6的组件库,在它们的CRM系统上普遍应用于Lightning框架。
    由于项目需要,我需要开发一个和它们标准关注按钮一样的按钮,尽可能实现一样的效果。

    思路

    既然是已经有的标准按钮,那么我们可以先看一下它的行为。
    在这里插入图片描述
    在关注之前,这个按钮长这样。
    在这里插入图片描述
    在这里插入图片描述

    关注之后,按钮的背景色消失,在发生hover(mouseover)事件之后,按钮的文字、图标都发生变化。
    样式上大致明白了,在开发者模式下,把两种状态下的按钮样式记录下来(因为是标准按钮我们可以直接借鉴官方样式,不用自己写)
    关注前:slds-button slds-button--neutral not-selected slds-not-selected uiButton
    关注后:slds-button slds-button--neutral is-selected slds-is-selected uiButton

    接下来就是按钮的逻辑coding。
    首先我们要知道在salesforce系统里,“关注”是什么用途、怎么实现的。
    略微查阅了官方文档之后,我得知,关注基本上是用于chatter、record、user等一众功能的状态follow。基本上等于微博、微信等的关注逻辑。
    比如我们关注一个记录之后,在chatter tab内部,我们可以看到这个记录发生的变化等等:
    在这里插入图片描述
    知道了Follow的逻辑,之后验证按钮逻辑就知道如何验证了。接下来是代码级别的实现。
    同样的,在salesforce apex develop文档内,我们可以找到如何用Apex关注、解除关注一个record:
    关注:

    ChatterUsers.ConnectApi.Subscription subscriptionToRecord = ConnectApi.ChatterUsers.follow(null, 'me', '001RR000002G4Y0');
    

    解关:

    ConnectApi.Chatter.deleteSubscription(null, '0E8RR0000004CnK0AU');
    

    当然官方文档上就只有这两个简单的示例代码,我们需要找到SFDB中保存关注关系的数据结构,再深入查找一下,果然,它藏在文档的另一处地方😆:

    订阅实体
    EntitySubscription

    • ParentId
    • SubscriberId
    • NetworkId (不重要)
    • Id

    好了,万事俱备,只欠东风,我们开始构造自己的关注按钮

    开发

    首先我们构造一个lwc组件,目前lwc组件是不能在salesforce自带的开发工具中开发、查阅的。因此我们需要用到在ide中创建。(目前比较流行的是vscode的官方开发者工具和sublime上的haoide)

    创建一个followButton组件。
    在html文件中,写入一下代码:

    <template>
      <template if:false={following}>
        <button onclick={handleFollow} class="slds-button slds-button--neutral not-selected slds-not-selected uiButton">
          <lightning-icon size="xx-small" class="slds-button__icon slds-button__icon--left forceIcon slds-icon-utility-check" icon-name="utility:add">
          </lightning-icon>
          <lightning-formatted-text value="フォローする"></lightning-formatted-text>
        </button>
      </template>
      <template if:true={following}>
        <button onclick={handleUnfollow} onmouseover={mouseOver} onmouseout={mouseOut} data-id="follow" class="slds-button slds-button--neutral is-selected slds-is-selected uiButton">
          <lightning-icon size="xx-small" class="slds-button__icon slds-button__icon--left forceIcon slds-icon-utility-check" icon-name={iconName}>
          </lightning-icon>
          <lightning-formatted-text value={status}></lightning-formatted-text>
        </button>
      </template>
    </template>
    

    我们画面上会有两个按钮,分别在未关注、已关注的状态下显示(等下我会解释为什么)

    此时我们先要去写好组件的控制类代码,创建一个FollowButtonController.cls
    在我们的控制类中,只需要三个逻辑:

    1. 关注记录
    2. 解关记录
    3. 判断记录是否被当前用户关注

    因此我们的控制类长这样:

    public with sharing class FollowController {
    
        @AuraEnabled
        public static string followRecord(Id recordId){
            try {
                // get UserId
                Id currentUserId = UserInfo.getUserId();
                ConnectApi.Subscription subscriptionToRecord = ConnectApi.ChatterUsers.follow(null, currentUserId, recordId);
                system.debug(subscriptionToRecord);
                return 'SUCCESS';
            } catch (Exception e) {
                throw new AuraHandledException(e.getMessage());
            }
        }
    
        @AuraEnabled
        public static String unfollowRecord(Id recordId){
            try {
                String subscribId = '';
                Id userId = UserInfo.getUserId();
                EntitySubscription subscription = new EntitySubscription();
                subscription = [Select ParentId, SubscriberId from EntitySubscription where ParentId = :recordId AND SubscriberId = :userId];
                if (subscription != null) {
                    subscribId = subscription.Id;
                }
                if (subscribId != '') {
                    ConnectApi.Chatter.deleteSubscription(null, subscribId);
                    return 'SUCCESS';
                }
                return 'FALSE';
            } catch (Exception e) {
                throw new AuraHandledException(e.getMessage());
            }
        }
    
        @AuraEnabled(cacheable=true)
        public static boolean isFollowing(Id recordId){
            try {
                Id userId = UserInfo.getUserId();
                List<EntitySubscription> subscription = new List<EntitySubscription>();
                subscription = [Select ParentId, SubscriberId from EntitySubscription where ParentId = :recordId AND SubscriberId = :userId];
                if (subscription.size() != 0) {
                    return true;
                }
                return false;
            } catch (Exception e) {
                throw new AuraHandledException(e.getMessage());
            }
        }
    }
    

    接着,我们在lwc组件的js文件中调用这三个逻辑:

    import { LightningElement,track,api,wire } from 'lwc';
    import isFollowing from '@salesforce/apex/FollowController.isFollowing';
    import followRecord from '@salesforce/apex/FollowController.followRecord';
    import unfollowRecord from '@salesforce/apex/FollowController.unfollowRecord';
    import { refreshApex } from '@salesforce/apex';
    
    const NOT_FOLLOWING = 'slds-button slds-button--neutral not-selected slds-not-selected uiButton'
    const FOLLOWING = 'slds-button slds-button--neutral is-selected slds-is-selected uiButton'
    export default class FollowButton extends LightningElement {
      @track
      following
      @wire(isFollowing, {recordId: '$recordId'})
      wiredFollowing({error, data}) {
        if (data == true) { // is following
          console.log('[init follow][following]')
          this.following = true
        } else if (data == false) { // not following
          console.log('[init follow][not_following]')
          this.following = false
        } else if (error) {
          console.log(error)
        }
      }
      @api
      recordId
      @track
      iconName = "utility:add"
      @track
      status = "フォロー中"
      mouseOver() {
        this.status = "フォロー解除"
        this.iconName= "utility:close"
      }
      mouseOut() {
        this.status = "フォロー中"
        this.iconName= "utility:add"
      }
      handleFollow() {
          console.log('following')
          followRecord({recordId: this.recordId.toString()}).then(result => {
            if (result === 'SUCCESS') {
              console.log('[Followed]')
              this.following = true
              this.notfollowingClass = 'hide'
              this.followingClass = 'show'
              console.log(this.followingClass)
            }
          }).catch(e => {
            console.log(e)
          })
      }
      handleUnfollow() {
        unfollowRecord({recordId: this.recordId.toString()}).then(result => {
          if (result === 'SUCCESS') {
            console.log('[Unfollowed]')
            this.status = 'フォロー中'
            this.following = false
          }
        }).catch(e => {
          console.log(e)
        })
      }
    
    }
    

    为什么要用两个按钮分别处理两个状态下的关注行为?
    一开始我也想通过状态,改变一个按钮的行为,但是在lwc的shadowDOM限制下(document等的不可见、不可操作、this指向不到包装类的方法),
    只能通过匿名函数用addEventListener在按钮上注册mouseover mouseout等事件方法,这种带来的弊端是我们无法用removeEventListener去删去已经注册的方法。因此在我们的按钮变成关注中时,注册上鼠标事件之后,不能除去。再解关之后按钮的行为将错误。
    因此我们退而求其次,用两个按钮去分别处理关注行为。
    最后,看一下我们实现的“标准”lwc关注按钮组件:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    和标准的一模一样,好了,你可以将它放在任何你喜欢的地方了。

    以上就是这次分享的lwc组件实现标准关注按钮。谢谢阅读。

    展开全文
  • 国内社交关注按钮(ChinaSocialFollowUsButtons) 如果你想要一款简单风格的关注我们按钮,那么你可以试一试我们原创的ChinaSocialFollowUsButtons。 在使用时,只需要填写 a 标签 href 参数,图标就会自动显示...
    WordPress开发源码 国内社交关注按钮(ChinaSocialFollowUsButtons)下载

    国内社交关注按钮(ChinaSocialFollowUsButtons)

    如果你想要一款简单风格的关注我们按钮,那么你可以试一试我们原创的ChinaSocialFollowUsButtons。

    在使用时,只需要填写 a 标签 href 参数,图标就会自动显示出来,你可以放置在你所需要的地方。

    你可以看到下面的示例图标。展示出来的图标都是我们支持的社会化网站。

    只复制你需要的li标签:


    安装步骤

    1) 在网页头部加载css样式和jquery.js。注意要加载font-awesome的CSS样式,在这之前要将FONT文件夹复制到静态文件夹中,与CSS文件夹同级:

    1. ```html
    2. <script src="js/jquery.js"></script>
    3. <link rel="stylesheet" href="css/csfub.css" />
    4. <link rel="stylesheet" href="css/font-awesome.min.css?ver=4.4.0'" />
    5. ``` 

     

    2) 复制任意的 `.menu-social` 列表到所需的位置:

    1.  
    2. ```html
    3. <!-- 按钮从这里开始. 复制 div到你的文档. -->
    4. <div id="menu-social" class="menu">
    5. <ul id="menu-social-items" class="menu-items" style="-webkit-padding-start: 0px;">
    6. <li class="menu-item">
    7. <a title="关注我们的新浪微博" target="_blank" rel="nofollow" href="http://weibo.com"><span class="screen-reader-text">新浪微博</span></a>
    8. </li>
    9. <li class="menu-item">
    10. <a title="关注我们的腾讯微博" target="_blank" rel="nofollow" href="http://t.qq.com"><span class="screen-reader-text">腾讯微博</span></a>
    11. </li>
    12. <li class="menu-item">
    13. <a title="关注我们的QQ空间" target="_blank" rel="nofollow" href="http://qzone.qq.com"><span class="screen-reader-text">QQ空间</span></a>
    14. </li>
    15. <li class="menu-item">
    16. <a title="关注我们的github主页" target="_blank" rel="nofollow" href="https://github.com/yehaicao/"><span class="screen-reader-text">github</span></a>
    17. </li>
    18. <li class="menu-item">
    19. <a title="关注我们的人人主页" target="_blank" rel="nofollow" href="https://zhan.renren.com/"><span class="screen-reader-text">github</span></a>
    20. </li>
    21. <li class="menu-item">
    22. <a title="关注我们的微信公众号" target="_blank" rel="nofollow" href="http://wx.qq.com"><span class="screen-reader-text">微信公众号</span></a>
    23. </li>
    24. <li class="menu-item">
    25. <a title="关注我们的百度空间" target="_blank" rel="nofollow" href="http://www.baidu.com"><span class="screen-reader-text">百度</span></a>
    26. </li>
    27. <li class="menu-item">
    28. <a title="关注我们的twitter" target="_blank" rel="nofollow" href="http://twitter.com"><span class="screen-reader-text">twitter</span></a>
    29. </li>
    30. <li class="menu-item">
    31. <a title="facebook" target="_blank" rel="nofollow" href="http://facebook.com"><span class="screen-reader-text">facebook</span></a>
    32. </li>
    33. <li class="menu-item">
    34. <a title="plus.google" target="_blank" rel="nofollow" href="http://plus.google.com"><span class="screen-reader-text">plus.google</span></a>
    35. </li>
    36. <li class="menu-item">
    37. <a title="pinterest" target="_blank" rel="nofollow" href="http://pinterest.com"><span class="screen-reader-text">pinterest</span></a>
    38. </li>
    39. <li class="menu-item">
    40. <a title="flickr" target="_blank" rel="nofollow" href="http://flickr.com"><span class="screen-reader-text">flickr</span></a>
    41. </li>
    42. <li class="menu-item">
    43. <a title="vimeo" target="_blank" rel="nofollow" href="http://vimeo.com"><span class="screen-reader-text">vimeo</span></a>
    44. </li>
    45. <li class="menu-item">
    46. <a title="youtube" target="_blank" rel="nofollow" href="http://youtube.com"><span class="screen-reader-text">youtube</span></a>
    47. </li>
    48. <li class="menu-item">
    49. <a title="instagram" target="_blank" rel="nofollow" href="http://instagram.com"><span class="screen-reader-text">instagram</span></a>
    50. </li>
    51. <li class="menu-item">
    52. <a title="youtube" target="_blank" rel="nofollow" href="http://youtube.com"><span class="screen-reader-text">youtube</span></a>
    53. </li>
    54. <li class="menu-item">
    55. <a title="wordpress" target="_blank" rel="nofollow" href="http://wordpress.com"><span class="screen-reader-text">wordpress</span></a>
    56. </li>
    57. <li class="menu-item">
    58. <a title="vk" target="_blank" rel="nofollow" href="http://vk.com"><span class="screen-reader-text">vk</span></a>
    59. </li>
    60. <li class="menu-item">
    61. <a title="linkedin" target="_blank" rel="nofollow" href="http://linkedin.com"><span class="screen-reader-text">linkedin</span></a>
    62. </li>
    63. <li class="menu-item">
    64. <a title="soundcloud" target="_blank" rel="nofollow" href="http://soundcloud.com"><span class="screen-reader-text">soundcloud</span></a>
    65. </li>
    66. <li class="menu-item">
    67. <a title="tripadvisor" target="_blank" rel="nofollow" href="http://tripadvisor.com"><span class="screen-reader-text">tripadvisor</span></a>
    68. </li>
    69. <li class="menu-item">
    70. <a title="yelp" target="_blank" rel="nofollow" href="http://yelp.com"><span class="screen-reader-text">yelp</span></a>
    71. </li>
    72. <li class="menu-item">
    73. <a title="订阅我们" target="_blank" rel="nofollow" href="http://www.wordpressleaf.com/feed"><span class="screen-reader-text">订阅我们</span></a>
    74. </li>
    75. <li class="menu-item">
    76. <a title="给我们写信" target="_blank" rel="nofollow" href="mailto:admin@wordpressleaf.com"><span class="screen-reader-text">给我写信</span></a>
    77. </li>
    78. </ul>
    79. </div>
    80. <!-- 按钮代码结束 -->
    81. ```
    WordPress开发源码 国内社交关注按钮(ChinaSocialFollowUsButtons)下载

    WordPressLeaf.com

     
    这些<li> 代码,你可以在 index.html 示例中找到。
     
    3) 在你的网页上加上javascript文件,它们都在js的文件内。另外微信二维码使用了js来加载,所以你也需要加载csfub.js。

    1.  ```html
    2. <script src="js/csfub.js"></script>
    3. ```

     
    4) 在csfub.js中将图片地址改自己的图片地址。

    1.  ```html
    2. var imgurl='img/weixin.png';
    3. ```

     

    下载地址

    你可以在github下载: github

    结束

    如果你有什么疑问,可以在本页留言,获得帮助。

    展开全文
  • xshell中图标按钮含义讲解

    千次阅读 2016-02-03 10:29:38
    其实Xftp可以不用不用创建会话来连接远程,而是在快速连接栏中通过输入主机名,用户名以及端口号来连接到远程电脑。Xftp如何简单快速连接远程的具体操作敬请关注本集Xmanager使用教程。

    xshell是常用的终端模拟器软件,但对于新手来讲,很多图标还是比较陌生的,本集小编整理了一份xshell图标说明。

    xshell图标说明:

           按钮

                 名称

                                                                 说明

    新建图标

    新建

    打开新建会话属性对话框以创建新的会话。

    打开图标

    打开

    打开会话对话框。

    断开连接

    断开连接

    断开当前会话的连接。

    重新连接

    重新连接

    重新连接当前选项卡的会话。

    属性

    属性

    显示当前会话的属性。如打不开会话则显示默认会话的属性

    复制

    复制

    把选择内容复制到剪贴板。

    粘贴

    粘贴

    粘贴剪贴板的内容。

    查找

    查找

    打开查找对话框。

    打印

    打印

    当前打印对话框。

    配色方案

    配色方案

    选择配色方案。需要修改背景色,可以参考:Xshell如何设置字体色和背景色

    编码

    编码

    罗列可输出语言的编码。

    字体

    字体

    罗列可使用的字体名称和大小,可更改目前打开的会话的字体,如要更改各会话的字体,在会话属性对话框选择会话的字体。

    新建终端

    新建终端

    打开新的Xshell窗口。在连接状态下点击该按钮可使用相关会话的连接信息试图建立连接。具体可以参考:

    新文件传输

    新文件传输

    已安装Xftp时运行Xftp。在连接状态下点击该按钮用相关会话的连接信息开始新的文件传输会话。如未安装Xftp,开始Xshell自己的文件传输会话。具体可参考:如何设置与xftp联动的文件传输

    全屏

    全屏

    切换到全屏模式。按Alt+Enter键即变回一般窗口模式。

    锁定屏幕

    锁定屏幕

    切换到锁屏模式。在输入密码之前用户输入的动作均无效。

    按键对应

    按键对应

    打开用户按键对应对话框。

    脚本

    脚本

    运行Xshell脚本文件。

    启动日志记录

    启动日志记录

    开始记录日志。

    停止日志记录

    停止日志记录

    停止记录日志。

    选项

    选项

    打开选项对话框。

    用户密钥管理者

    用户密钥管理者

    打开用户秘钥对话框。

    主机密钥管理者

    主机密钥管理者

    打开主机密钥对话框。

    xagent

    Xagent

    运行Xagent程序。

    xactivator

    Xactivator

    运行Xactivator程序。

    帮助

    帮助

    打开Xshell帮助。

    以上就是xshell中常见的图标及其含义。

    文章参考于: http://www.xshellcn.com/zhishi/tubiao-hanyi.html

    展开全文
  • 以后再有其他情况会陆续更新的,请关注。。。。 情况1:IntelliJ IDEA打开带SVN信息的项目不显示SVN信息,项目右键SVN以及图标还有Changes都不显示解决方法 在VCS菜单中有个开关,叫Enabled Version Control ...
  • 关注微信号:javalearns 随时随地学Java 或扫一扫 ...除了Android系统自带的Button按钮以外,还提供了带图标按钮ImageButton 要制作带图标按钮,首先要在布局文件中定义ImageButton,
  • 以后再有其他情况会陆续更新的,请关注。。。。 情况1:IntelliJ IDEA打开带SVN信息的项目不显示SVN信息,项目右键SVN以及图标还有Changes都不显示解决方法 在VCS菜单中有个开关,叫Enabled Version Control ...
  • 社交媒体关注按钮栏-是带有流行社交媒体图标集的栏,这些图标直接链接到您在此社交网络上的个人资料。 即,单击Facebook图标将把用户带到您的Facebook页面,单击Twitter图标将把他们带到您的Twitter页面。 与其他...
  • 这是一款立体感很强的CSS3 3D按钮按钮是一个twitter的图标,首先可以看出图标的制作十分精美,然后当你鼠标滑过按钮时,按钮即可翻转开来,显示twitter的用户名,用户可以点击进去进行关注操作,按钮在翻转的时候...
  • Unity 动态改变button图标

    万次阅读 2016-08-10 10:33:05
    由图可以看到,当隐藏菜单时按钮图标指向左面,点击后显示菜单并按钮图标指向右边。 这一过程通过代码很容易实现。我们先来关注一下button的inspector面板,面板如下: 通过inspector面板我们可以发现,控制...
  • 超多超可爱的FLASH豆豆表情图标,看着确实很逗,鼠标放上去还有反应,其实是用按钮的原理制作完成的,个人认为是这样,关键是带有Flash源文件,懂行的可自己修改使用,在此感谢关注好库编程网。 运行环境:Flash8+
  • 图标类似于暂停按钮。 当您敲击键盘上的实际“暂停”键(也称为“中断”)时,程序将确定当前位于前台的窗口(即游戏的窗口)并暂停它。 无论您在游戏中身在何处。 即使在其中一个令人讨厌的剪辑场景中,这些场景...
  • 在您的网站或博客上放置一个Twitter“ 关注我 ”按钮无疑是将访问者转换为Twitter关注者的最简单方法之一。 对于那些对设计知之甚少的人来说,设计漂亮的Twitter图标或徽章可能是一个挑战,但是好消息是–有很多免费...
  • 这是一个包括了多种菜单及图标效果的VC 基本界面设计实例,演示了一个基本窗口的实现过程,囊括了必备的窗口元素、菜单、按钮图标等的综合应用,比如创建图文菜单、数据列表显示控件等,面向打基础的VC爱好者。...
  • 以下是本人原创,如若转载和使用请注明转载地址。本博客信息切勿用于商业,...点击图标不断震动效果这是完全震动的情况,之后介绍,添加按钮实现震动的切换动画。。12345678910111213141516171819202122232425262728...
  • 我们只关注图标的美,而只有很少的软件能够意识到这一点。 Dynamicon不会大量消耗PC资源。 您甚至可以在具有2G RAM和2Ghz + CPU的PC上运行它。 它具有良好的可扩展性,这使您可以通过将JavaScript文件复制到my_app...
  • 持续关注按钮倒计时。 始终查看按钮计时器,以及按下按钮时将获得的相关颜色。 您还可以将警报设置为在剩余一定秒数的地方响起。 然后,它将激活/ r / thebutton打开的选项卡,或者使用/ r / thebutton创建一个新的...
  • 单击扩展程序图标后,它将带您到Twitter帐户的以下部分。 弹出确认消息,如果单击“确定”,页面将开始向下滚动并加载您所关注的所有人员。 加载完所有用户后,它会计算没有立即关注您的人数,并打印出人数以及您要...
  • 有时候点击网页上的按钮没反应,比如知道里的“提交网速没问题,360网速检测为:下载速度206kb/s 浏览器:360最新版和ie9 同样问题,关注~~~~~~~~~~· 问题已经解决: 在IE9地址栏右侧,有“放大镜”、“文档”、...
  • 我们首先来看看窗体中的子网格默认的 添加 按钮的行为,我这里点击了一下子网格旁边的 加号 图标,在子网格的第一行记录出现了搜索框,是可以进行搜索的,用 * 作为通配符可以进行搜索,当然也可...
  • 获取微信公众号的关注链接地址

    万次阅读 2019-10-29 17:05:10
    获取微信公众号的关注链接 1.打开PC端微信,点击公众号 2.左键点击公众号图标,然后再点击中间的那个按钮(查看历史消息按钮) 3:点击复制链接地址 4.这样你就得到微信公众号的链接地址了。 ...
  • 怎么将DBNavigator显示时是中文标题 来源:本网整理 ...如何将DBNavigator显示时是中文标题?如题:就是现在想实现在DBNavigator上显示的是中文文字,而不是原来...------解决方案--------------------关注-----...
  • 带着笔记本电脑出门虽然方便,但总是担心用到一半会没电,所以需要不时的关注一下剩余电量。偶然一次发现Win7任务栏右下角通知区域里的电池状态图标不见了,完全不知道电量用到什么程度,太没安全感。可是打开Win7...
  • 如何获取微信公众号的关注链接?

    万次阅读 2019-07-15 17:59:58
    1.打开PC端微信,点击公众号 2.左键点击公众号图标,然后再带年纪中间的那个按钮。 3.点击“复制链接地址”,这串地址就是公众号关注链接。
  • Photoshop快速制造三维立体按钮

    千次阅读 2006-01-14 17:38:00
    一、在开始此文章之前,... 关注photoshop制作效果的网友们都知道,前段时间流行苹果机的图标,于是无论是会使用photoshop的还是追求真善美的朋友,都在自己的桌面掀起了一番应用苹果机图标风潮,其中应用最多数的数按

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 190
精华内容 76
关键字:

关注按钮图标