【问题标题】:facebook customer chat messenger positioningfacebook客户聊天信使定位
【发布时间】:2019-02-06 15:46:26
【问题描述】:

所以我已经在我的网站上安装了 facebook 客户聊天信使插件,它工作正常,但我需要将它对齐到网站的左侧,如果可能的话还要更改按钮的大小(它很大)。

我的代码是:

<script>(function(d, s, id) {
              var js, fjs = d.getElementsByTagName(s)[0];
              if (d.getElementById(id)) return;
              js = d.createElement(s); js.id = id;
              js.src = 'https://connect.facebook.net/pt_PT/sdk/xfbml.customerchat.js';
              fjs.parentNode.insertBefore(js, fjs);
            }(document, 'script', 'facebook-jssdk'));</script>

<div class="fmessengerBtn">
<script>
    window.fbAsyncInit = function() {
        FB.init({
            xfbml: true,
            version : "v3.2"
        });
    };
    </script>
    <div id="fb-root"></div>
    <div class="fb-customerchat" 
        attribution=setup_tool 
        page_id="372545293082246" 
        theme_color="#0b9bb8" 
        greeting_dialog_display="fade" 
        greeting_dialog_delay="60" 
        ref="home" 
        logged_in_greeting="Fale conosco" 
        logged_out_greeting="Fale conosco">
    </div>
    </div>

我尝试过只使用 CSS 来对齐容器 div,但聊天窗口将停留在网站的右侧...是否有某种属性或选项可以将东西设置到左侧反而?当然这是很多其他人需要做的事情

此外,greeting_dialog_delay 选项似乎不起作用

【问题讨论】:

  • 除了文档中列出的样式之外,没有任何其他样式选项 - 您必须尝试通过自己的样式表以某种方式对其进行操作(尽可能多,大部分位于 iframe 中。)对于 Facebook 来说,用户可以在任何地方轻松快速地识别此组件可能比为您提供自定义它的详细选项更重要。
  • @04FS 左对齐或右对齐似乎不是“自定义它的详细选项”,我的意思是肯定不是所有网站的右下角都有一个空位供信使使用,有些人喜欢那里有一个“滚动到顶部”按钮或其他任何东西。我认为这是默认情况下任何此类插件都应该提供的选项之一

标签: facebook facebook-messenger facebook-customer-chat


【解决方案1】:

以下 CSS 目前似乎可以使用(因为类可能会改变):

/* ***************
 * FB on left side 
 ******************/

/* This is for the circle position */
.fb_dialog.fb_dialog_advanced {
    left: 18pt;
}

/* The following are for the chat box, on display and on hide */
iframe.fb_customer_chat_bounce_in_v2 {
    left: 9pt;
}
iframe.fb_customer_chat_bounce_out_v2 {
    left: 9pt;
}

【讨论】:

    【解决方案2】:

    我稍微调整了代码,以防您想将小部件保留在右下角,但只需将它移到左边一些(例如,它阻塞了另一个元素)

    .fb_dialog.fb_dialog_advanced {
        right: 18pt;
      margin-right: 50px;
    }
    iframe.fb_customer_chat_bounce_in_v2 {
        right: 9pt;
       margin-right: 50px;
    }
    iframe.fb_customer_chat_bounce_out_v2 {
        right: 9pt;
       margin-right: 50px;
    }

    【讨论】:

      【解决方案3】:

      添加到@Cubakos 的答案以获得 bounce inbounce out 动画:

      @keyframes fb_bounce_in_v2 {
          0% {
              opacity: 0;
              transform: scale(0, 0);
              transform-origin: bottom left;
          }
      
          50% {
              transform: scale(1.03, 1.03);
              transform-origin: bottom left;
          }
      
          100% {
              opacity: 1;
              transform: scale(1, 1);
              transform-origin: bottom left;
          }
      }
      
      @keyframes fb_bounce_out_v2 {
          0% {
              opacity: 1;
              transform: scale(1, 1);
              transform-origin: bottom left;
          }
      
          100% {
              opacity: 0;
              transform: scale(0, 0);
              transform-origin: bottom left;
          }
      }
      

      【讨论】:

      • 我认为这个答案已经过时了......☹️
      【解决方案4】:

      试试下面的代码

      .fb_dialog {
      position: -webkit-sticky !important;
      position: fixed !important;
      bottom: 95px !important;
      right: 30px !important;
      }
      

      【讨论】:

        【解决方案5】:

        结合@Cubakos 和@Kuttoosan 的答案 + 对设置聊天气泡进行了调整,因为此处发布的方法不再适合我。

        /* The following is for the chat bubble */
        .fb_dialog_content>iframe {
          left: 18pt;
        }
        
        /* The following are for the chat box, on display and on hide */
        iframe.fb_customer_chat_bounce_in_v2 {
          left: 9pt;
        }
        
        iframe.fb_customer_chat_bounce_out_v2 {
          left: 9pt;
        }
        
        /* The following are for the bounce in/out animations */
        @keyframes fb_bounce_in_v2 {
          0% {
            opacity: 0;
            transform: scale(0, 0);
            transform-origin: bottom left;
          }
        
          50% {
            transform: scale(1.03, 1.03);
            transform-origin: bottom left;
          }
        
          100% {
            opacity: 1;
            transform: scale(1, 1);
            transform-origin: bottom left;
          }
        }
        
        @keyframes fb_bounce_out_v2 {
          0% {
            opacity: 1;
            transform: scale(1, 1);
            transform-origin: bottom left;
          }
        
          100% {
            opacity: 0;
            transform: scale(0, 0);
            transform-origin: bottom left;
          }
        }
        

        【讨论】:

          【解决方案6】:

          简单如下。

          .fb_dialog.fb_dialog_advanced iframe {
              right: auto !important;
              left: 2rem;
              bottom: 2rem !important;
          }
          

          【讨论】:

          • 请注意,您必须针对其中的 iframe。
          【解决方案7】:

          一段时间后,我意识到我们无法通过 CSS 自定义这个插件,因为

          "不可能将 iframe 中包含的元素设置为 由于 HTML,您会在您的网站上使用普通的 HTML 元素 限制” https://wordpress.org/support/topic/resize-messenger-icon/

          您可以从 Facebook 业务页面自定义您的聊天插件只有 3 件事:

          • 对齐
          • 颜色
          • 底部间距(适用于移动设备和桌面设备)

          在右侧页面中,有预览页面供您了解您的定制将是什么样子。

          自定义完成后,别忘了点击“PUBLISH”按钮保存更改。

          您无法更轻松地调整徽标的大小或样式,这很痛苦,我希望 Facebook 将来可以赋予我们更多的权力来做我们想做的事情。

          【讨论】:

          • 我同意我们无法灵活地为 iframe 中的元素设置样式。但是我们仍然可以设置 iframe 的定位样式。有助于 iframe 的 X 轴定位,因为 fb 设置仅启用位置方向。
          • @BowieChang 是的,这是一个很好的观点
          猜你喜欢
          • 2015-06-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-02
          • 1970-01-01
          相关资源
          最近更新 更多