当前位置: 首页 > news >正文

深圳网站建设总部最珠海app下载官网

深圳网站建设总部,最珠海app下载官网,微信订阅号关键网站,网络营销手段有哪四种前端:运用htmlcssjquery.js实现截图游戏 1. 前言2. 实现原理3. 参考代码和运行结果 1. 前言 最近在刷手机视频时,总是能刷到一个这样的视频,视频上是一个截图游戏,当图片上的某个片段正好在图片的正确位置时,暂停视频,…

在这里插入图片描述

前端:运用html+css+jquery.js实现截图游戏

        • 1. 前言
        • 2. 实现原理
        • 3. 参考代码和运行结果

1. 前言

最近在刷手机视频时,总是能刷到一个这样的视频,视频上是一个截图游戏,当图片上的某个片段正好在图片的正确位置时,暂停视频,截好图发到评论区,显示你很牛逼,哈哈。如果读者觉得小编这篇博客让读者学到了一些关于前端布局的知识,希望读者能点赞支持一下。
请添加图片描述,上述运行结果正好演示这个截图效果。

2. 实现原理

怎样把一张图片分成多个部分呢?个人觉得可以这样做,首先,需要创建对应多的标签元素,对于每一个标签元素,设置相应的宽度和高度,然后css样式中设置背景图片background-image,背景图片位置background-position-x、background-positon-y(经过计算即可),这样就可以实现把一张图片分成多张小图片。关于这些对应多的标签元素,考虑使用li标签。关于li标签的布局,先把其父标签ul设置为相对定位(position:relative),然后其子标签li标签使用绝对定位(position:absolute),然后设置相应的top、left值即可。至于其中一个部分动的画面,使用定时器,定时器内部的函数操作这个部分的top、left值即可。
请添加图片描述
考虑使用原生的js代码实现上述效果,代码量会大一些,于是使用封装的js库jquery.js,关于代码中jquery的一些知识,小编在此讲述一下。

$(‘body ul li’)
上述是查找 html 中标签元素,如果标签元素是单个,使用.attr(属性名称)即可获取这个元素的相关属性,如果标签元素是多个,那么是获取查找的标签元素的第一个元素的相关属性。
.each((ele)=>{})是对查找的元素进行遍历,其中ele是查找的元素中每一个,相当于js中forEach
想了解跟多关于jquery的知识,可以去jquery知识专栏学习,链接为:W3school

3. 参考代码和运行结果

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>截图</title><style>*{margin: 0;padding: 0;}body ul{width: 500px;height: 518px;margin: 20px auto;list-style: none;position: relative;}body button{margin:0 auto;width: 30px;height: 25px;display: block;}.margin-top-1px{margin-top: 1px;}body ul li{background-image: url('./1.jpg');width: 125px;height: 172px;position: absolute;text-align: center;line-height: 172px;font-size: 25px;font-weight: bolder;color: red;z-index: 1;}</style><script src="./jquery.js"></script>
</head>
<body>
</body>
<script type="text/javascript">// 图片大小 500 * 518// 500/4 = 125 518/3 = 172 余 2var arr = '鼠牛虎兔龙蛇马羊猴鸡狗猪'.split('');var _str = '';for(let i=0;i<12;i++){if(i >= 4){_str += `<li class="margin-top-1px"></li>`}else{_str += '<li></li>';}}$('body').html(`<ul>${_str}</ul><button>暂停</button>`);$('body ul li').each((index,ele)=>{$(ele).css({'top':parseInt(index/4)*172+'px','left':(index%4)*125+'px','backgroundPositionX': -(index % 4) * 125 + 'px','backgroundPositionY': -parseInt(index / 4) * 172 + 'px'});$(ele).text(arr[index]);});var ele2 = $('body ul li').eq(1);ele2.css('zIndex',2);var flag = 'r'; // 状态 r b l tvar fun1 = ()=>{let top = parseInt(ele2.css('top'));let left = parseInt(ele2.css('left'));// ul 标签样式 宽度 和 高度 为 500 , 518// 500 - 125 = 375 518 - 172 = 346if (top == 0 && left >= 375) flag = 'b';if(left == 375 && top >= 346)flag = 'l';if(top == 346 && left <= 0)flag = 't';if(left == 0 && top <= 0)flag = 'r';if(flag == 'r')left ++;else if(flag == 'b')top ++;else if(flag == 'l')left --;else top --;ele2.css({'top': top + 'px','left': left + 'px'});// console.log(top,left);};var timer2 = setInterval(fun1,10);var flag2 = true;$('body button').click(()=>{if(flag2){let top = parseInt(ele2.css('top'));let left = parseInt(ele2.css('left'));clearInterval(timer2);flag2 = false;$('body button').text('开始');if(top == 0 && left == 125){alert('组图成功!');}}else{flag2 = true;timer2 = setInterval(fun1, 10);$('body button').text('暂停');}});
</script>
</html>

运行结果:

前端:运用html+css+jquery.js实现截图游戏

http://www.yayakq.cn/news/110393/

相关文章:

  • 公司网站建设方案建议微信营销方案
  • 柳州网站河北省建设项目环保备案网站
  • 土地流转网站开发跳转网站怎么做
  • 企业网站开发需要多钱义乌市建设银行分行网站
  • 我要自咋样做网站微信怎么做链接推广产品
  • 诸暨市建设局网站宁波高端定制网站建设
  • vs网站制作教程互联网大数据精准营销
  • 企业安全文化建设导则最新版seo管理系统
  • 网站后台被挂木马qq开发人
  • 哪里能给人做网站wordpress用什么发post
  • o基础学建网站企业法治建设工作计划
  • 合肥政务新区建设局网站wordpress文章收录后显示
  • 知道网站前台怎样进后台高淳区建设局网站
  • 专业图书商城网站建设互通登录插件WordPress
  • 官方网站怎么找最专业的营销网站建设公司哪家好
  • 手机网站自适应答题做任务网站
  • 微站是什么意思wordpress 用户分组
  • 做网站优化网站建设旗舰品牌
  • 北京网站开发建设 58同城king wordpress
  • 孝感的网站建设做电子商务网站的公司
  • 网站建设工网页设计与制作工作
  • 重庆放心seo整站优化全国装修公司排名
  • 建网站软件最新wordpress 数据库类
  • 西安制作网站公司哪家好制作钓鱼网站的费用
  • 网站改版 报价网站开发 方案 报价单
  • 朝阳网站优化网站管理员怎么联系
  • wordpress 附件上传插件seo排名赚app最新版本
  • 餐饮加盟网网站建设dedecms电影网站模板
  • 一家做特卖的网站叫什么学编程要什么电脑
  • 网页特效源码网站发卡网站建设