文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

jQuery如何实现首页悬浮框

2023-06-29 17:32

关注

这篇“jQuery如何实现首页悬浮框”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“jQuery如何实现首页悬浮框”文章吧。

基于jQuery实现首页悬浮框,如下图所示

jQuery如何实现首页悬浮框

在页面中引入jQuery.bay-window.js,jQuery.bay-window.js的代码如下:

!function($){    $.fn.autoMove = function(args){    //先定义一些工具函数判断边距    function isTop(pos, w_w, w_h, d_w, d_h){//飘窗到达上边距      return (pos.top<=0) ? true : false;    }    function isBottom(pos, w_w, w_h, d_w, d_h){//飘窗到达下边距      return (pos.top>=(w_h-d_h)) ? true : false;    }    function isLeft(pos, w_w, w_h, d_w, d_h){//飘窗到达左边距      return (pos.left<=0) ? true : false;    }    function isRight(pos, w_w, w_h, d_w, d_h){//飘窗到达右边距      return (pos.left>=(w_w-d_w)) ? true : false;    }    return this.each(function(){      var w_w = parseInt($(window).width()),        w_h = parseInt($(window).height()),        d_w = parseInt($(this).width()),        d_h = parseInt($(this).height()),        d_l = (w_w-d_w)/2,        d_t = (w_h-d_h)/2,        max_l = w_w - d_w;      max_t = w_h - d_h;      //位置及参数的初始化      var setobj = $.extend({startL:d_l, startT:d_t, angle:Math.PI/4, speed:100}, args);      $(this).css({position: 'fixed', left: setobj['startL']+'px', top: setobj['startT']+'px'});      var position = {left: setobj['startL'], top: setobj['startT']};//飘窗位置对象      var that = $(this);      var angle= setobj.angle;      var time = 10;//控制飘窗运动效果,值越小越细腻      var step = setobj.speed * (time/1000);//计算运动步长      var decoration = {x:step*Math.cos(angle), y:step*Math.sin(angle)};//计算二维上的运动增量      var mvtid;      $(window).on('resize', function(){//窗口大小变动时重新设置运动相关参数          w_w = parseInt($(window).width());          w_h = parseInt($(window).height());          max_l = w_w - d_w;          max_t = w_h - d_h;      });      function move(){        position.left += decoration.x;        position.top  += decoration.y;        if(isLeft(position, w_w, w_h, d_w, d_h)||isRight(position, w_w, w_h, d_w, d_h)){          decoration.x = -1*decoration.x;        }        if(isRight(position, w_w, w_h, d_w, d_h)){          position.left = max_l;        }        if(isTop(position, w_w, w_h, d_w, d_h)||isBottom(position, w_w, w_h, d_w, d_h)){          decoration.y = -1*decoration.y;        }        if(isBottom(position, w_w, w_h, d_w, d_h)){          position.top = max_t;        }        //that.css({left:position.left, top:position.top});        that.stop().animate({left:position.left, top:position.top}, time);//改用jquery动画函数使其更加平滑        mvtid = setTimeout(move, time);//递归调用,使飘窗连续运动      }      move();//触发动作      that.on('mouseenter', function(){ clearTimeout(mvtid) });//添加鼠标事件      that.on('mouseleave', function(){ move() });    });  }; //end plugin definition}(jQuery);

接口获取悬浮框相关的数据

http("POST", "/School/detail", {"id":s_id}, function (e) {             vm.piaoc = e.data;        vm.$nextTick(function () {            $('.automv').autoMove({angle:-Math.PI/4, speed:50});            $("body").on("click",".automv span",function(){                $(this).parent().find("a").removeAttr("href");                $(this).parent().hide();            })        })    })

html页面引入相关html代码

<template v-if="piaoc != null">      <template v-if="piaoc.is_open_float_win == '1'">                <div class="automv" :>                    <span>×</span>                    <a :href="piaoc.open_float_url" rel="external nofollow" >                        <template v-if="piaoc.open_float_image">                            <img :src="piaoc.open_float_image_name+'!y'" alt="">                        </template>                        <template v-else>                            <img src="../image/piaochuang.jpg" alt="">                        </template>                    </a>                </div>            </template>            <template v-else>                <div class="automv" ></div>      </template></template>

相关悬浮框的css

.automv{    width: 200px;    height: 150px;    z-index: 1032;    position: relative;}.automv a{    display: block;    width: 100%;    height: 100%;}.automv a img{    width: 100%;    height: 100%;}.automv span{    position: absolute;    right: 3px;    top: 3px;    font-size: 26px;    color: #fff;    cursor: pointer;    display: block;    width: 20px;    height: 20px;    line-height: 20px;    text-align: center;}.automv:hover span{    color: #fc87a3;}

以上就是关于“jQuery如何实现首页悬浮框”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯