js实现图片区域可点击大小随意改变(适用移动端)代码实例

来源:脚本之家  责任编辑:小易  

你是要拖动还是用代码移动啊.移动的话就动态改变图片的left和top值,拖动的话 就是一楼的方法

实现图片区域可点击,实际上使用map是可以的,但是适配效果并不好,图片只能是固定大小的值,而且点都被写死了。

jQuery拖拽通过八个点改变div大小js:(function($) {/**

在这里,我使用的js基于canvas写的一个小工具。可以圈出你需要点击的部分,然后生成一串json,在预览页面就可以看见效果了;

分别写一个onmouseover和onmouseout事件。然后在事件里面加一个function,分

在实际应用中,只要用工具处理一下图片,再把数据存入数据库,就很方便了;

div:hover{这里面写一个,你要触摸的样式}

使用工具时,先上传图片。然后就可以圈了,圈完一定要记得,点击保存数据,,,接着就可以预览了,预览点击的效果,可以看控制台,

我自己写了个可以切换上下张图片的效果(图片是上下覆盖,不是你需要的左右滑动),如果你需要的话留个邮箱

首先是工具

包奕凡是《欢乐颂》中新出现的一位人物。也是安迪的配偶,可以说在的剧集里也是圈粉无数,因为人设相当讨喜。由实力派演员杨烁饰演,而杨烁也因为这个角色迎来事业的春天。在爱人面前,十分幽默,看起来也是吊儿郎当,似乎不着边际。实际上确实富二代,也是集团副总。外形英俊高大,还是是一位天生的统领者,有着独到的眼光,而且做事从不磨蹭与拖沓,有着很强的行动力,更有着很强大的气场。然而,即使如此有才能,在爱人面前能够放低自己的姿态,懂得讨爱人欢心,正因为如此,才有了很多人认证的好男人形象。

首先工具的html

xv在起步时初期0-30,让你感觉不输于原来的2.5森林人。在30km以上感觉平顺,但缺少激情。在60km以上深踩油门发动机响应及时,CVT变速箱与发动机配合略吃顿一下,转速可以过4500转,还算ok。2.0L别的车也不会比XV好到哪去。XV起步反应好,城里红绿灯前面起步基本上属于第一个冲过去的。80-100km提速也是靠发动机提转速,变速箱降变比。高速也就是185左右。cvt线性好略偏肉。城市用车,cvt平顺省油,代步十分不错的工具车斯巴鲁由于发动机技术较精密,基本上使用0W20机油,但0W20本身机油较稀,在高温时要求建立足够的油膜强度,只有全合成的0W20才可以达到这个要求,这里的全合成

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; font-family: "微软雅黑"; } .hide{ display: none; } canvas{ border: 1px solid red; display: block; margin: 0 auto; background-position: 0 0; background-repeat: no-repeat; background-size: 100% 100%; } .cover{ position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.4); } .cover p{ text-align: center; } .btn{ width: 800px; margin: 0 auto; padding-top: 10px; } .btn p{ padding-bottom: 10px; } a{ text-decoration: none; color: #000; } button{ line-height: 30px; padding: 0 10px; cursor: pointer; border-radius: 4px; background: #449d44; color: #fff; border: none; } </style> </head> <body> <div class="btn"> <p> <button onclick="saveData()">保存数据</button> <button onclick="getData()">导入数据</button> <button onclick="seeData(true)">查看数据</button> <a href="preview.html" rel="external nofollow" target="_blank"><button>预览效果</button></a> </p> <p> <input type="file" name="imgload" id="imgload" value="上传图片" /> </p> <p> <button onclick="reduo()">撤销</button> <button onclick="clearAll()">清除</button> </p> <p> 基础宽度:<input type="text" name="width" id="width" value="800" /> </p> <p> 基础高度:<input type="text" name="width" id="height" value="600" /> </p> </div> <canvas id="canvas" width="800" height="600"></canvas> <div class="cover hide"> <p> <span>url地址:</span> <input type="text" name="" id="urlAddress" value="" /> </p> <p> <span>描述:</span> <input type="text" name="dec" id="dec" value="" /> </p> <p> <button class="contain">确认</button> </p> </div> </body> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/index.js"></script> </html>

谢谢邀请!目前比阿里腾讯强的国外公司不探讨。在这个基础上发表一下个人观点:如果阿里或者腾讯在人工智能和大数据领域不能持续发力,若干年后(5-10年)被其它公司赶上甚至超越是很有可能的。在国内最有可能的还是百度。网上曾经有一篇“著名”的文章,叫做《懒才是第一生产力》。文章里说:懒”这个属性一直在推动着人类进步的进程,因为想“偷懒”,所以人类就日日夜夜在那里捣腾,以达到自己想偷懒的目标。这当然是片面的。我们都知道,科技才是真正的第一生产力。20多年前开始进入信息化时代后,互联网的发明和使用将全世界的人类和信息连接在了一起,极大地提高了全社会的分工协作效率。可以这么说:追求效率是社会发展的核心驱动力

接着是工具的js代码

聊文玩,找空空,关注南红讲堂头条号,学习文玩知识!空空觉得,应该这么说:保山南红开采得早,而且现在基本已经封矿,所以市面上流通的保山南红大都比较成熟了,好料总数基本不会再往上升。所以大家看保山南红似乎越买越少,就会更加追捧,使得保山南红的价格水涨船高。但是说真的,保山南红就一定比别的南红好吗?其实不然。现在四川凉山出产的江山南红也有非常优秀的品类,只不过是因为时间较短,发展起步晚,所以名声还没这么大,出的好料,有名的料也没有保山南红这么多罢了。但如果因为这些现象,就武断地认为保山南红是最好的,空空认为是不妥当的。最近空空给大家做南红赌石视频,涨还是垮?关注南红讲堂,查看开石结果。

var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); ctx.lineWidth = 1; ctx.strokeStyle="green"; /*ctx.beginPath(); ctx.moveTo(10, 100); ctx.lineTo(300,100); ctx.stroke(); ctx.closePath();*/ var run = false; var moduleList = []; var path = []; var $baseImg = ''; var $cover = $(".cover"); var $urlAddress = $('#urlAddress'); var $dec = $("#dec"); var $baseWidth = $('#width'); var $baseHeight = $('#height'); canvas.onmousedown = function(e){ //console.log(e.clientX); //console.log(e.offsetX); ctx.beginPath(); ctx.moveTo(e.offsetX, e.offsetY); path.push({ x:e.offsetX, y:e.offsetY }); run = true; } canvas.onmousemove = function(e){ //var x = e.offsetX; if(run){ ctx.lineTo(e.offsetX, e.offsetY); ctx.stroke(); path.push({ x:e.offsetX, y:e.offsetY }); } } canvas.onmouseup = function(e){ run = false; ctx.closePath(); if(path.length > 10){ $cover.removeClass('hide'); }else{ path = []; } } //保存数据 function saveData(){ var data = { "dec":"图片点击", "version":"1", "img":$baseImg, "module":moduleList, "baseWidth":$baseWidth.val(), "baseHeight":$baseHeight.val() } console.log(JSON.stringify(data)); localStorage.setItem("data",JSON.stringify(data)); } //查看数据 function seeData(flag){ var data = { "dec":"图片点击", "version":"1", "img":$baseImg, "module":moduleList, "baseWidth":$baseWidth.val(), "baseHeight":$baseHeight.val() } if(flag){ console.log(JSON.stringify(data)); } return data; } //图片背景 $('#imgload').on('change',function(){ imgToBase64(this.files[0],function(result){ console.log(result); var base64Data = 'url(' + result + ')'; $(canvas).css({'background-image': base64Data}); $baseImg = result; }); }); //转化为base64 function imgToBase64(file,callback){ var reader = new FileReader(); reader.onload = function (e) { callback(e.target.result); }; reader.readAsDataURL(file); // 读取完后会调用onload方法 } //确认信息 $cover.on('click','.contain',function(){ if($urlAddress.val() == ''){ alert('地址不能为空'); }else{ moduleList.push({ id:getName(), path:path, url:$urlAddress.val(), dec:$dec.val() }); path = []; $cover.addClass('hide'); } }); //修改高度和宽度 $baseWidth.on('change',function(){ $(canvas).css({'width': $(this).val()}); }); $baseHeight.on('change',function(){ $(canvas).css({'height': $(this).val()}); }); //随机获取名称 function getName(){ var timer = new Date(); var arr = JSON.stringify(timer).replace(/:|-|"/g ,'').split('.'); var str = arr.join(''); return str; } //导入模板 function getData(){ var data = JSON.parse(localStorage.getItem("data")); if(data){ moduleList = data.module;; $baseImg = data.img; drawn(data); }else{ alert('没有模板数据.'); } } //撤销 function reduo(){ moduleList.pop(); ctx.clearRect(0, 0, canvas.width, canvas.height); drawn(seeData()); } //清除所有 function clearAll(){ moduleList = []; ctx.clearRect(0, 0, canvas.width, canvas.height); } //给数据,画出来 function drawn(data){ ctx.clearRect(0, 0, canvas.width, canvas.height); var module = data.module; var base64Data = 'url(' + data.img + ')'; $(canvas).css({'background-image': base64Data}); $baseWidth.val(data.baseWidth); $baseHeight.val(data.baseHeight); $(canvas).css({'width': data.baseWidth,'height':data.baseHeight}); //开始画 for(var i = 0; i < module.length;i++){ var path = module[i].path; ctx.beginPath(); ctx.moveTo(path[0].x, path[0].y); for(var j = 1; j < path.length; j++){ ctx.lineTo(path[j].x, path[j].y); ctx.stroke(); } ctx.closePath(); } }

最后是preview.html预览

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <style type="text/css"> *{ padding: 0; margin: 0; } body,html{ width: 100%; height: 100%; } canvas{ background-position: 0 0; background-repeat: no-repeat; background-size: 100% 100%; width: 100%; height: 100%; } .wrap{ border: 1px solid red; margin: 0 auto; width: 800px; height: 600px; } </style> </head> <body> <div class="wrap"> <canvas id="canvas" ></canvas> </div> </body> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript"> var $canvas = $('#canvas'); var canvas = $canvas[0]; var data = JSON.parse(localStorage.getItem("data")); var ctx = canvas.getContext('2d'); ctx.lineWidth = 1; ctx.strokeStyle="rgba(0,0,0,0)"; var module = data.module; var rateWidth = $canvas.width()/data.baseWidth; var rateHeight = $canvas.height()/data.baseHeight; var base64Data = 'url(' + data.img + ')'; $canvas.css({'background-image': base64Data}); console.log(rateWidth); console.log(rateHeight); //判断点击了图片的某个地方 canvas.onclick = function(e){ var x = event.pageX - canvas.getBoundingClientRect().left; var y = event.pageY - canvas.getBoundingClientRect().top; for(var i = 0; i < module.length;i++){ var path = module[i].path; ctx.beginPath(); ctx.moveTo(path[0].x*rateWidth, path[0].y*rateHeight); for(var j = 1; j < path.length; j++){ ctx.lineTo(path[j].x*rateWidth, path[j].y*rateHeight); } ctx.closePath(); if(ctx.isPointInPath(x, y)){ clickCall(module[i]); return; } } }; //点击中了选中的区域 function clickCall(result){ console.log(result.dec); console.log(result.url); } </script> </html>

效果

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

怎么用js实现图片点击时放大,再点击恢复

用JavaScript实现图片点击放大再次点击恢复代码如下:

知识拓展:

JavaScript 是目前所有主流浏览器上唯一支持的脚本语言,这也是早期JavaScript的唯一用途。其主要作用是在不与服务器交互的情况下修改HTML页面内容,因此其最关键的部分是DOM(文档对象模型),也就是HTML元素的结构。

通过Ajax可以使HTML页面通过JavaScript,在不重新加载页面的情况下从服务器上获取数据并显示,大幅提高用户体验。通过JavaScript,使Web页面发展成胖客户端成为可能。

本回答被网友采纳

原生JS,实现图片可拖拽,并且移动四个角和四条变能够自由变换图片大小

见证奇迹的时刻到了:

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <style>

        * {

            margin: 0;

            padding: 0

        }

        .box {

            position: absolute;

            top: 100px;

            left: 100px;

        }

        /*四边*/

        .box .t,

        .box .b,

        .box .l,

        .box .r {

            position: absolute;

            z-index: 1;

            background:#666;

        }

        .box .l,

        .box .r {

            width: 10px;

            height: 100%;

            cursor: col-resize;

        }

        .box .t,

        .box .b {

            width: 100%;

            height: 10px;

            cursor: row-resize;

        }

        .box .t {

            top: 0;

        }

        .box .b {

            bottom: 0;

        }

        .box .l {

            left: 0;

        }

        .box .r {

            right: 0;

        }

        /*四角*/

        .box .tl,

        .box .bl,

        .box .br,

        .box .tr {

            width: 20px;

            height: 20px;

            position: absolute;

            background: #CCC;

            z-index: 2;

            cursor: nwse-resize

        }

        .box .tl,

        .box .bl {

            left: -5px;

        }

        .box .tr,

        .box .br {

            right: -5px;

        }

        .box .br,

        .box .bl {

            bottom: -5px;

        }

        .box .tl,

        .box .tr {

            top: -5px;

        }

        .box .tr,

        .box .bl {

            cursor: nesw-resize;

        }

        /*图片*/

        img {

            width: 100%;

            height: 100%;

        }

    </style>

    <script>

        window.onload = function () {

            var oDiv = document.getElementsByTagName('div')[0];

            oDiv.style.width = '500px';

            var aSpan = oDiv.getElementsByTagName('span');

            for (var i = 0; i < aSpan.length; i++) {

                dragFn(aSpan[i]);

            }

            function dragFn(obj) {

                obj.onmousedown = function (ev) {

                    var oEv = ev || event;

                    var oldWidth = oDiv.offsetWidth;

                    var oldHeight = oDiv.offsetHeight;

                    var oldX = oEv.clientX;

                    var oldY = oEv.clientY;

                    var oldLeft = oDiv.offsetLeft;

                    var oldTop = oDiv.offsetTop;

                    document.onmousemove = function (ev) {

                        var oEv = ev || event;

                        if (obj.className == 'tl') {

                            oDiv.style.width = oldWidth - (oEv.clientX - oldX) + 'px';

                            oDiv.style.height=oldHeight-(oEv.clientY-oldY)+'px';

                            oDiv.style.left = oldLeft + (oEv.clientX - oldX) + 'px';

                            oDiv.style.top = oldTop + (oEv.clientY - oldY) + 'px';

                        }

                        else if (obj.className == 'bl') {

                            oDiv.style.width = oldWidth - (oEv.clientX - oldX) + 'px';

                            oDiv.style.height=oldHeight+(oEv.clientY-oldY)+'px';

                            oDiv.style.left = oldLeft + (oEv.clientX - oldX) + 'px';

                            oDiv.style.bottom = oldTop + (oEv.clientY + oldY) + 'px';

                        }

                        else if (obj.className == 'tr') {

                            oDiv.style.width = oldWidth + (oEv.clientX - oldX) + 'px';

                            oDiv.style.height = oldHeight - (oEv.clientY - oldY)+'px';

                            oDiv.style.right = oldLeft - (oEv.clientX - oldX) + 'px';

                            oDiv.style.top = oldTop + (oEv.clientY - oldY) + 'px';

                        }

                        else if (obj.className == 'br') {

                            oDiv.style.width = oldWidth + (oEv.clientX - oldX) + 'px';

                            oDiv.style.height = oldHeight + (oEv.clientY - oldY)+'px';

                            oDiv.style.right = oldLeft - (oEv.clientX - oldX) + 'px';

                            oDiv.style.bottom = oldTop + (oEv.clientY + oldY) + 'px';

                        }

                        else if (obj.className == 't') {

                            oDiv.style.height=oldHeight-(oEv.clientY-oldY)+'px';

                            oDiv.style.top = oldTop + (oEv.clientY - oldY) + 'px';

                        }

                        else if (obj.className == 'b') {

                            oDiv.style.height = oldHeight + (oEv.clientY - oldY)+'px';

                            oDiv.style.bottom = oldTop - (oEv.clientY + oldY) + 'px';

                        }

                        else if (obj.className == 'l') {

                            oDiv.style.height = oldHeight + 'px';

                            oDiv.style.width = oldWidth - (oEv.clientX - oldX) + 'px';

                            oDiv.style.left = oldLeft + (oEv.clientX - oldX) + 'px';

                        }

                        else if (obj.className == 'r') {

                            oDiv.style.height = oldHeight + 'px';

                            oDiv.style.width = oldWidth + (oEv.clientX - oldX) + 'px';

                            oDiv.style.right = oldLeft - (oEv.clientX - oldX) + 'px';

                        }

                    };

                    document.onmouseup = function () {

                        document.onmousemove = null;

                    };

                    return false;

                };

            }

        };

    </script>

</head>

<body>

<div class="box">

    <span class="r"></span>

    <span class="l"></span>

    <span class="t"></span>

    <span class="b"></span>

    <span class="br"></span>

    <span class="bl"></span>

    <span class="tr"></span>

    <span class="tl"></span>

    <img src="https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/iknow/730-350-0.jpg">

</div>

</body>

</html>追问大神 ~左右好想反了~~

在html中怎么用js实现鼠标指向图片时图片放大到原图那么大?(具体实现)

可以用js事件“onmouseover”和“onmouseout”来实现。

1、新建html文档,在body标签中添加图片标签,为这个标签设置“id”属性,然后设置图片的默认显示大小css属性:

2、添加“onmouseover”js事件,首先使用“document.getElementById”获取到图片标签,然后定义鼠标移动到图片上时发生的事件,这时图片将会放大:

3、添加“onmouseout”js事件,首先获取图片标签,然后定义鼠标移开图片时发生的事件,这时图片将会缩小:

CSS加JS怎么实现网页移动端上传身份证和头像?

为+号添加点击事件,点击时弹出文件上传的对话框,ajax异步上传完文件有现成的js库,文件上传完毕后执行回调,现在图片在+的位置,点击修改的本质就是一个update,原理和前面一样。我这里有现成的代码更多追问追答追问可以把你源代码给我发一份吗?追答留邮箱给我,发js文件给你追问554620389 @qq.com谢谢了追答已发送追问没收到邮件呢追答

你检查下邮箱,我这边显示已经投递成功了

追问收到了呢,就是全是JS,有页面的HTML代码和CSS代码吗?我需要对照页面才能看得明白。谢谢了追答js里面有注释呀。项目文件不能给你,那个毕竟是公司的东西。给你部分html和css你也跑不起来。仔细看看能看懂得·追问看不懂~给我那一页的CSS和HTML代码就行。谢谢了~

jquery新手求助,如图,怎么实现点击除弹出框之外的任何地方,让弹出框消失?

在body绑订一个事件,这个事件只把这个弹窗口关闭就行了,如果这个弹窗口弹出的时候才帮订这个事件。追问可以给一段代码示范吗,谢谢追答$(function(){

function bdclose(id){ //自定义一个函数这个函数只关闭弹的窗口,

$('body').click(funciton(){ //帮订body事件

dialogclose(id); //这个就是调用关闭弹窗口的函数

});

}

});

比如你在显示弹窗口本回答被提问者和网友采纳

  • 本文相关:
  • js实现多张图片每隔一秒切换一张图片
  • js canvas实现5张图片合成一张图片
  • nodejs实现获取本地文件夹下图片信息功能示例
  • 详解vue.js中引入图片路径的几种方式
  • js实现图片上传并预览功能
  • js 图片转base64的方式(两种)
  • js中图片压缩的方法小结
  • javascript实现省市区三级联动下拉框菜单
  • js动态删除div元素基本思路及实现代码
  • 实用javascript调试技巧分享(小结)
  • javascript实现按键精灵的原理分析
  • js随机洗牌算法之数组随机排序
  • js获取html元素的标记名实现方法
  • javascript记录光标在编辑器中位置的实现方法
  • javascript实现更换背景图片
  • javascript在浏览器标题栏上显示当前日期和时间的方法
  • 详解微信小程序之scroll-view的flex布局问题
  • 怎么用js实现图片点击时放大,再点击恢复
  • 原生JS,实现图片可拖拽,并且移动四个角和四条变能够自由变换图片大小
  • 在html中怎么用js实现鼠标指向图片时图片放大到原图那么大?(具体实现)
  • CSS加JS怎么实现网页移动端上传身份证和头像?
  • jquery新手求助,如图,怎么实现点击除弹出框之外的任何地方,让弹出框消失?
  • JS怎样实现图片的移动
  • jquery 移动端手指拖拽div四个边框,可上下左右随意拉伸调节div大小
  • 在html中怎么用js实现鼠标指向图片时图片放大的效果?(具体实现)
  • js或者jquery如何在移动端(手机)实现触摸摸个文字变色的效果?
  • 跪求,js手机移动端html点击图片弹出后可触摸屏左右滑动上下张图片的效果
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved