<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了jQuery實現首頁懸浮框的具體程式碼,供大家參考,具體內容如下
基於jQuery實現首頁懸浮框,如下圖所示
1、在頁面中引入jQuery.bay-window.js,jQuery.bay-window.js的程式碼如下:
!function($){ /** * Description: jquery飄窗外掛,可自適應瀏覽器寬高的變化 * Author: ddqre12345 * CreateTime: 2017.5.3 * param: args={startL:default, startT:default, angle:-Math.PI/4, speed: 125} * 引數說名: startL飄窗初始時距離左邊的距離, startT飄窗初始化距離頂部的距離, angle飄窗初始運動方向, speed運動速度(px/s) */ $.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);
2、介面獲取懸浮框相關的資料
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(); }) }) })
3、html頁面引入相關html程式碼
<template v-if="piaoc != null"> <template v-if="piaoc.is_open_float_win == '1'"> <div class="automv" :style="'display: block;height:'+piaoc.open_float_height+';width:'+piaoc.open_float_width"> <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" style="display: none;"></div> </template> </template>
4、相關懸浮框的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; }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45