H5页面悬浮球,可拖动_h5 悬浮球_残月飞鹰的博客-程序员宅基地

技术标签: css  js  H5页面悬浮球,可拖动  javascript  

H5页面悬浮球,可拖动

$(document).ready(function() {
	//设置样式
	$("body").css({"margin":0,"padding":0});
	$(".homepage-btn").css({//初始化HOME图标到屏幕右上角
		"left":($(window).width()-$(".homepage-btn").width()-10) + "px"	,			
		"top":"85%"		
	})
	setTimeout('$(".homepage-btn").css({"opacity":"0.2","-webkit-transition":"opacity 2s"})',3000);
    //绑定home键事件
	$(".homepage-btn").click(function() {
		window.location.href = getLocalStorageValue("homeUrl");
	});
	//home键在屏幕移动
	var cont=$(".homepage-btn");	
	var contW=cont.width();
	var contH=cont.height();			
	var startX,startY,sX,sY,moveX,moveY;		
	var winW=$(window).width();	
	var winH=$(window).height();
	var barrage_name=$(".homepage-btn").children(".home");
	var body=$("body");
	
	cont.on({//绑定事件
		touchstart:function(e){
			$(".homepage-btn").css({"opacity":"0.9","-webkit-transition":"opacity 0.1s"});
			//$(".homepage-btn").css({"animation":"fade-in","animation-duration":"0.5s","-webkit-animation":"fade-in 0.5s"});
			startX = e.originalEvent.targetTouches[0].pageX;	//获取点击点的X坐标	
			startY = e.originalEvent.targetTouches[0].pageY;    //获取点击点的Y坐标
			//console.log("startX="+startX+"************startY="+startY);
			sX=$(this).offset().left;//相对于当前窗口X轴的偏移量
			sY=$(this).offset().top;//相对于当前窗口Y轴的偏移量
			//console.log("sX="+sX+"***************sY="+sY);
			leftX=startX-sX;//鼠标所能移动的最左端是当前鼠标距div左边距的位置
			rightX=winW-contW+leftX-3;//鼠标所能移动的最右端是当前窗口距离减去鼠标距div最右端位置
			topY=startY-sY;//鼠标所能移动最上端是当前鼠标距div上边距的位置
			bottomY=winH-contH+topY-2;//鼠标所能移动最下端是当前窗口距离减去鼠标距div最下端位置				
			},
		touchmove:function(e){			
			e.preventDefault();
			moveX=e.originalEvent.targetTouches[0].pageX;//移动过程中X轴的坐标
			moveY=e.originalEvent.targetTouches[0].pageY;//移动过程中Y轴的坐标
			//console.log("moveX="+moveX+"************moveY="+moveY);
			if(moveX<leftX){moveX=leftX;}								
			if(moveX>rightX){moveX=rightX;}
			if(moveY<topY){moveY=topY;}
			if(moveY>bottomY){moveY=bottomY;}			
			$(this).css({
				"left":moveX+sX-startX,
				"top":moveY+sY-startY
			})
			/*setLocalStorageValue("home_left",moveX+sX-startX);
			setLocalStorageValue("home_top",moveY+sY-startY);*/
			},
		touchend:function(e){
			var curX = moveX+sX-startX;//当前拖动位置的X坐标
			var curY = moveY+sY-startY;//当前拖动位置的Y坐标
			/**
			 * 如果当前拖动位置X坐标等于0或者Y坐标等于0,则按照拖动的坐标定位。否则,按重新定位
			 */ 
			 if(curX && curY){
			 	if((curX == 0  || curX+44+3 == $(window).width()) || curY == 0  || curY+44+2 == $(window).height()){
				}else{
					if(curX >= $(window).width()/2){
						curX = ($(window).width()-$(".homepage-btn").width()-3);
					}else{
						curX = 3;
					}
				}
				$(this).css({
					"left":curX + "px"	,
					"top":curY + "px"	
				});
			 }
			 setTimeout('$(".homepage-btn").css({"opacity":"0.2","-webkit-transition":"opacity 2s"})',3000);
		},
	})
	
	
	//公共图片查看大图方法
	
	$("body").delegate('#imageCKDT','click',ckdt);
	
	
});
/**获取文件绝对路径前缀**/
function basePath() {
	//当前页面的绝对路径
	var curWwwPath = window.document.location.href;
	//当前页面的相对路径
	var pathName = window.document.location.pathname;
	//获取相对路径在绝对路径中的位置
	var pos = curWwwPath.indexOf(pathName);
	//获取路径前缀
	var localhostPath = curWwwPath.substring(0, pos);
	//获取项目名称
	var projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1);
	return localhostPath + projectName;
}



function ckdt(){
		if($("#model").length==0){
			$(document.body).append('<div id="model" style="position: fixed;top: 0;right: 0;bottom: 0;left: 0;overflow: hidden;outline: 0;-webkit-overflow-scrolling: touch; background-color: rgb(0, 0, 0);  filter: alpha(opacity=60); background-color: rgba(0, 0, 0, 0.6); z-index: 300005;display:none;" onclick="javascript:$(\'#model\').hide();"></div>');
		};
		var Height=document.body.clientHeight;//取得页面可视区域的高度
		var Width=document.body.clientWidth;//取得页面可视区域的宽度
		$("#model").show();
		var html = '<div class="first" style="text-align:center;"></div>';
		$("#model").html(html);
		//$('#PhotoDiv').find('img').attr('src');
		$("#model").children("div[class='first']").css({"width":Width,"height":Width,"top":(Height-Width)/2,"left":"0","position":"absolute","z-index":"100005"});
		var img = '<img id="imgDiv"  src="'+$(this).attr("src")+'" style="max-height:'+Width+',max-width:'+Width+';z-index:100005;padding:0;"></img>';
		$("#model").children("div[class='first']").html(img);
		//设置图片大小 
		if($("#imgDiv").height() >= Width){
	    	$("#imgDiv").css("height",Width);
	    }
	    if($("#imgDiv").width() >= Width){
	    	$("#imgDiv").css("width",Width);
	    }
		//让图片原始大小展示 于屏幕中央
		var DivHeight = document.getElementById("imgDiv").offsetHeight;//获取div块的高度值
		var DivWidth = document.getElementById("imgDiv").offsetWidth;//获取div块中文字所在span的宽度值 
	    var left = (Width - DivWidth) / 2  +  "px";//距容器左边的距离  
	    var top = ($("#model").children("div[class='first']").height() - DivHeight) / 2  +  "px";//距容器上方的距离  
	    $("#imgDiv").css({'position':'absolute','top':top,'z-index':'100005','left':left});
}

css文件

.homepage-btn {
			position: fixed;
			/*right: 10px;*/
			left:200px;
			top: 10px;
			width: 46px;
			height: 46px;
			/**-webkit-transition:opacity 2s;规定完成过渡效果需要2秒*/
			opacity: 0.9;
			/*background:rgba(101,211,186,0.70);*/
			background:-webkit-gradient(linear,0 0,100% 100%,from(#fff), to(#4B98F0));
			/* border:1px solid rgba(75,152,240,0.5); */
			box-shadow:0 2px 4px 0 rgba(110,103,103,0.50);
			border-radius:100%;
			display:block;
			z-index:999;
		}
		.homepage-btn .icon {
			display: inline-block;
			width: 100%;
			height: 100%;
			background: url(../../image/icon-add.png) no-repeat center center/70%;
		}

页面使用:在body中加入

<div class="homepage-btn">
		<i class="icon home"></i>
	</div>

 

 

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/songyanfei1205/article/details/110703676

智能推荐

链表:约瑟夫环问题_Kevin_Leong的博客-程序员宅基地

这是我遇到的第一个真正的算法,数据结构应用问题。这也是老大问了我这问题很多天后,我才恍然,原来这叫约瑟夫环问题。这是我查找链表时,发现的。长话短说,说说这上午的总结。约瑟夫环问题主要分两种, 第一种问题的描述是:N个人按顺时针围成一个圈,从1到N,然后报数,报到M的人就出去,然后剩余的人仍然围成一个圈,从出局的人下一个人开始重新报数,到M的人出局,如此循环。 第二中问题的描述唯一的不同...

最简单的文件加密工具(完全免费)_sm4解密.tar文件的在线工具-程序员宅基地

文件加密解密 免费工具_sm4解密.tar文件的在线工具

VMware-workstation安装步骤(图解)_sam_458的博客-程序员宅基地

1.打开安装包,直接点击下一步安装类型 1为默认安装 2 为自定义安装,这里我选择了默认安装;可以改变虚拟机的存放路径;下一步产品更新时是否提醒,下一步;帮助提高虚拟机。。 这个可以默认选择或不选;下一步;创建快捷键;下一步继续安装;。。、等待安装;选择同意;下一步;填写注册码:5U63Y-6Q

java jtextarea 滚动,Java Swing - 如何使JTextArea或JEditorPane在JFrame中可滚动_百酱的博客-程序员宅基地

import java.awt.GridLayout;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;public class Main {public static void main(String... args) {J...

android 2ndboot,安卓手机怎么进入bootloader模式-与非网_美丽君Maggie的博客-程序员宅基地

在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。在一个基于ARM7TDMI core的嵌入..._bootloader怎么进入

PS人像磨皮调色插件ultimate retouch中文汉化版_weixin_44614062的博客-程序员宅基地

为大家分享新版本的Ultimate Retouch for mac中文破解版,这是一款安装在photoshop中使用的PS人像精修磨皮调色插件,ultimate retouch插件具备磨皮、调色、美白牙齿、瞳孔增强、锐化、旋转等实用的功能,轻松修饰人像,新版的ultimate retouch中文汉化版还提供了Retouch Tools和Blendit这两个面板,功能更加丰富,有需要Ultimate...

随便推点

2、存储过程(PLSQL块)异常申明、捕获与抛出_存储过程抛出异常_心寒丶的博客-程序员宅基地

存储过程(PLSQL块)异常申明、捕获与抛出_存储过程抛出异常

XRecyclerView的多条目适配器_code small farmer的博客-程序员宅基地

《XRecyclerView的多条目适配器》public class MoreItemAdapter extends RecyclerView.Adapter {private Context context;private List<MoreItemBean.ItemsBean> data = new ArrayList<>();public MoreItemAd...

LintCode 55. 比较字符串_RYAN-LZ的博客-程序员宅基地

LintCode 55. 比较字符串问题描述 比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母 注意事项 在 A 中出现的 B 字符串里的字符不需要连续或者有序。 样例 给出 A = “ABCD” B = “ACD”,返回 true 给出 A = “ABCD” B = “AABC”, 返回 false

c# 中string.Equals用法_hubaxiaofeiyu的博客-程序员宅基地

c# 中string.Equals用法字符串是引用数据类型,是String对象我们在C# 中定义两个string 类型的变量stringA 和 stringB当需要对字符串进行比较的时候,可以直接使用:if( stringA == stringB) ;当然也可以使用:if( stringA.Equals(stringB) );但是在LINQ语句中,找出与软件版本号(softwareV...

差异表达基因热图怎么看_四个基因的能量代谢模型构建与验证,轻松发4分sci!..._weixin_39559119的博客-程序员宅基地

今天分享一篇2019年6月发表于J Cell Physiol(IF:4.522)的文章,标题是Identification of a four‐gene metabolic signature predicting overall survival for hepatocellular carcinoma. 文章主要是预后模型构建和验证,富集分析佐证代谢方向,外部数据支持预后相关基因在测试集和验证..._riskscore图怎么看

推荐文章

热门文章

相关标签