# JavaScript 文档

这里是 JavaScript 的文档内容。

# 美洽唤起客服

  • 比如你要让一个链接 a 点击后唤起美洽,可以这样写:
<a href="javascript:void(0)" class="open-meiqia">联系客服</a>

<script>
document.querySelector('.open-meiqia').addEventListener('click', function(e) {
    e.preventDefault();
    _MEIQIA('showPanel');
});
</script>
  • 如果你有多个 a 链接都需要唤起,就给它们一个公共 class:
<a href="#" class="mq-link">咨询1</a>
<a href="#" class="mq-link">咨询2</a>
<a href="#" class="mq-link">咨询3</a>

<script>
document.querySelectorAll('.mq-link').forEach(function(el) {
    el.addEventListener('click', function(e) {
        e.preventDefault();
        _MEIQIA('showPanel');
    });
});
</script>
  • 这样所有 .mq-link 点击都会直接打开美洽聊天面板。

# 视频自适应

<div class="swiper-slide-video">
    <video src="{!! inject('block')->block('hm-video', 'extend') !!}" autoplay muted loop></video>
</div>

<style>
    .swiper-slide-video {
        position: relative; 
        padding-bottom: 41.5625%; /* 宽度/高度 */

    }
    .swiper-slide-video video {
        position: absolute;
        left: 0;
        top: 0;
        height: 100%;
        width: 100%;
        object-fit: cover;
    }
</style>

# 常用js

//返回头部
$(".scroll_to_top2").click(function() { //当点击跳转链接后,回到页面顶部位置
    $('body,html').animate({
        scrollTop: 0
    }, 400);
    return false;
});

$(".ss_btn").click(function() {
    $(".search-box").slideToggle();
});

//导航条固定在头部
if ($(window).scrollTop() > 0) {
    $('.header').addClass('scroll');
}
$(window).scroll(function() {
    var len = $(this).scrollTop();
    if (len > 0) {
        $('.header').addClass('scroll');
    } else {
        $('.header').removeClass('scroll')
    }
});


/* 导航下拉 */
$(function() {
    $(".x-menu>li").hover(function() {
        $(this).find('.x-sub-menu').stop(true).slideDown(300);
    }, function() {
        $(this).find('.x-sub-menu').stop(true).slideUp(300);
    });
});


// 内页手机端端 做的导航弹出特效
$(".xymob-page-navbtn").click(function(){
    $(".xymob-menu-click").addClass('click');
    $('html,body').addClass('no-scroll');
});
$(".xymob-left-close-btn").click(function(){
    $(".xymob-menu-click").removeClass('click');
    $('html,body').removeClass('no-scroll');
});

# 视口检测动画

$(function() {
    /* ----------- 视口检测动画 ----------- */
    var $animation_elements = $(".site-footer");
    var $window = $(window);

    function check_if_in_view() {
        var window_height = $window.height();
        var window_top_position = $window.scrollTop();
        var window_bottom_position = window_top_position + window_height;

        $.each($animation_elements, function() {
            var $element = $(this);
            var element_top_position = $element.offset().top;
            var element_bottom_position = element_top_position + $element.outerHeight();

            if (element_bottom_position >= window_top_position && element_top_position <= window_bottom_position) {
                $element.addClass("active");
            } else {
                $element.removeClass("active");
            }
        });
    }

    $window.on("scroll resize", check_if_in_view);
    $window.trigger("scroll");

});

# 鼠标悬停

//>> Mouse Cursor Start <<//
function mousecursor() {
    if ($("body")) {
        const e = document.querySelector(".cursor-inner"),
            t = document.querySelector(".cursor-outer");
        let n,
            i = 0,
            o = !1;
        (window.onmousemove = function(s) {
            o ||
                (t.style.transform =
                    "translate(" + s.clientX + "px, " + s.clientY + "px)"),
                (e.style.transform =
                    "translate(" + s.clientX + "px, " + s.clientY + "px)"),
                (n = s.clientY),
                (i = s.clientX);
        }),
        $("body").on("mouseenter", "a, .cursor-pointer", function() {
                e.classList.add("cursor-hover"), t.classList.add("cursor-hover");
            }),
            $("body").on("mouseleave", "a, .cursor-pointer", function() {
                ($(this).is("a") && $(this).closest(".cursor-pointer").length) ||
                (e.classList.remove("cursor-hover"),
                    t.classList.remove("cursor-hover"));
            }),
            (e.style.visibility = "visible"),
            (t.style.visibility = "visible");
    }
}
$(function() {
    mousecursor();
});
/* mouse */
.mouse-cursor{position:fixed;left:0;top:0;pointer-events:none;border-radius:50%;-webkit-transform:translateZ(0);transform:translateZ(0);visibility:hidden}
.cursor-inner{width:6px;height:6px;z-index:10000001;background-color:#f19d00;-webkit-transition:width .3s ease-in-out,height .3s ease-in-out,margin .3s ease-in-out,opacity .3s ease-in-out;-o-transition:width .3s ease-in-out,height .3s ease-in-out,margin .3s ease-in-out,opacity .3s ease-in-out;transition:width .3s ease-in-out,height .3s ease-in-out,margin .3s ease-in-out,opacity .3s ease-in-out}
.cursor-inner.cursor-hover{margin-left:-35px;margin-top:-35px;width:70px;height:70px;background-color:#f19d00;opacity:.3}
.cursor-outer{margin-left:-12px;margin-top:-12px;width:30px;height:30px;border:1px solid #f19d00;-webkit-box-sizing:border-box;box-sizing:border-box;z-index:10000000;opacity:.5;-webkit-transition:all 80ms ease-out;-o-transition:all 80ms ease-out;transition:all 80ms ease-out}
.cursor-outer.cursor-hover{opacity:0}

# tab切换

<style type="text/css">
    .tab-con { position: relative; }
    .tab-con .tab-main { position: absolute; left: 0; top: 0; z-index: 9; right: 0;}
    .tab-con .tab-main { opacity: 0; visibility: hidden; transition: all .5s ease; }
    .tab-con .tab-main.active { position: static; opacity: 1; visibility: visible; }
</style>

<script type="text/javascript">
    /* tab 切换特效 */
    $(".tab-li li").eq(0).addClass('active');
    $(".tab-con .tab-main").eq(0).addClass('active');
    $(".tab-li li").hover(function(){
        var _id = $(this).index();
        $(this).addClass('active').siblings().removeClass('active');
        $(".tab-con .tab-main").eq(_id).addClass('active').siblings().removeClass('active');
    });
</script>

# 表格自适应

<script>
    var e = $(".xypg-right-content table");
    var len = e.length;
    for (var i = 0; i < len; i++) {
        $(".xypg-right-content  table").eq(i).wrap('<div style="overflow-y:hidden;"></div>')
    }
</script>

# 防复制

<script>document.body.onselectstart=document.body.oncontextmenu=function(){return false;};</script>

# js判断屏幕大小

<script type="text/javascript">
    //定义变量获取屏幕视口宽度
    var windowWidth = $(window).width();
    if(windowWidth < 640){
        // do something
    }
    if(windowWidth >= 640){
        // do something
    }
</script>

# 导航固定

<script type="text/javascript">
   //导航条固定在头部
    if ($(window).scrollTop() > 30) {
        $('.nav_wap').addClass('scroll');
    }
    $(window).scroll(function() {
        var len = $(this).scrollTop();
        if (len > 30) {
            $('.nav_wap').addClass('scroll');
        } else {
            $('.nav_wap').removeClass('scroll')
        }
    });
</script>

# 日期时间

<!-- 日期时间 -->
<div class="saictime" id="divT">日历</div>

<script>
    //日期时间
    function getCurDate() {
        var d = new Date();
        var week;
        switch (d.getDay()) {
            case 1:
                week = "星期一";
                break;
            case 2:
                week = "星期二";
                break;
            case 3:
                week = "星期三";
                break;
            case 4:
                week = "星期四";
                break;
            case 5:
                week = "星期五";
                break;
            case 6:
                week = "星期六";
                break;
            default:
                week = "星期天";
        }
        var years = d.getFullYear();
        var month = add_zero(d.getMonth() + 1);
        var days = add_zero(d.getDate());
        var hours = add_zero(d.getHours());
        var minutes = add_zero(d.getMinutes());
        var seconds = add_zero(d.getSeconds());
        var ndate = years + "年" + month + "月" + days + "日 " + week;
        //divT.innerHTML= ndate;
        $("#divT").html(ndate);
    }

    function add_zero(temp) {
        if (temp < 10) return "0" + temp;
        else return temp;
    }
    setInterval("getCurDate()", 100);
</script>