好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

js实现表格拖动选项

本文实例为大家分享了js实现表格拖动选项的具体代码,供大家参考,具体内容如下

题目要求如下图所示,具体思路:拖动改变选择项,用的的事件是js的拖动相关事件。

代码:

?

<!doctype html>

< html lang = "en" >

< head >

     < meta charset = "UTF-8" >

     < meta name = "viewport"

           content = "width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" >

     < meta http-equiv = "X-UA-Compatible" content = "ie=edge" >

     < title >Document</ title >

     < style >

         *{

             margin: 0;

             padding: 0;

         }

         ul,li{

             list-style: none;

             cursor: pointer;

         }

         .specWrap{

             width: 800px;

             margin: 0 auto;

             user-select: none;

         }

         .specification{

             border: 1px solid #ccc;

             width: 100%;

             position: relative;

         }

         .sp-top{

             height: 60px;

             line-height: 60px;

             text-align: center;

             box-sizing: border-box;

         }

         .sp-top ul{

             overflow: hidden;

         }

         .sp-top ul li{

             width: 33%;

             float: left

         }

         .sp-top ul li:nth-of-type(2){

             border-left: 1px solid #ccc;

             border-right: 1px solid #ccc;

         }

         .sp-cen{

             text-align: left;

             box-sizing: border-box;

             border-bottom: 1px solid #ccc;

             border-top: 1px solid #ccc;

             text-indent: 20px;

             overflow: hidden;

         }

         .screen{

             width: 33%;

             float: left;

         }

         .screen:nth-of-type(2){

             border-left: 1px solid #ccc;

             border-right: 1px solid #ccc;

         }

         .sp-btm{

             text-align: left;

             box-sizing: border-box;

             text-indent: 20px;

             overflow: hidden;

         }

         .resolution{

             width: 33%;

             float: left;

         }

         .resolution:nth-of-type(2){

             border-left: 1px solid #ccc;

             border-right: 1px solid #ccc;

         }

         .btn{

             float: right;

             width: 60px;

             margin: 20px 0;

         }

     </ style >

</ head >

< body >

< div class = "specWrap" >

     < div class = "specification" >

         < div class = "sp-top" >

             < ul >

                 < li >SPECIFICATIONS功能</ li >

                 < li >LEVELS规格</ li >

                 < li >SELECTED选择</ li >

             </ ul >

         </ div >

         < div class = "sp-cen" >

             < div class = "screen" >

                 < p >Screen size屏幕大小</ p >

             </ div >

             < div class = "screen" >

                 < ul class = "size" >

                     < li >4</ li >

                     < li >4.5</ li >

                     < li >5</ li >

                     < li >5.5</ li >

                     < li >6</ li >

                     < li >6.5</ li >

                 </ ul >

             </ div >

             < div class = "screen sc" ></ div >

         </ div >

         < div class = "sp-btm" >

             < div class = "resolution" >

                 < p >Screen resolution屏幕分辨率</ p >

             </ div >

             < div class = "resolution" >

                 < ul class = "resolu" >

                     < li >High definition (720p)</ li >

                     < li >Full HD (1080p)</ li >

                     < li >Quad HD (2K) 四倍高清(2K)</ li >

                     < li >Ultra HD (4K) 超高清(4K)</ li >

                 </ ul >

             </ div >

             < div class = "resolution re" ></ div >

         </ div >

     </ div >

     < div >

         < button class = "btn" >提交</ button >

     </ div >

</ div >

 

</ body >

< script >

     var size=document.getElementsByClassName('size')[0].children;  //size列表

     var resolu=document.getElementsByClassName('resolu')[0].children; //分辨率列表

     var specWrap=document.getElementsByClassName('specWrap')[0];

     for(let i=0;i< size.length ;i++){  //size选择

         size[i].function (e) {  //按下事件

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

                 size[i] .style.position = '' ;

                 size[i] .style.background = '' ;

             }

             var e =e||event;

             var lf = e .offsetX;

             var tp = e .offsetY;

             var current = this ;

             current.style.position = 'absolute' ;

             document.function(e){  //移动事件

                 var e =e||event;

                 var x = e .clientX-specWrap.offsetLeft-lf;

                 var y = e .clientY-specWrap.offsetTop-tp;

                 current.style.left = x +'px';

                 current.style.top =y+'px';

             }

             document.function(){  //鼠标释放事件

                 document.null;

                 document.getElementsByClassName('sc')[0] .innerHTML = current .innerHTML;

                 current.style.position = '' ;

             }

         }

     }

 

 

     for(let i = 0 ;i<resolu.length;i++){  //resolution选择,可以进行代码封装,在这我就不封装了

         resolu[i].function (e) {

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

                 resolu[i] .style.position = '' ;

                 resolu[i] .style.background = '' ;

             }

             var e =e||event;

             var lf = e .offsetX;

             var tp = e .offsetY;

             var current = this ;

             current.style.position = 'absolute' ;

             current.style.zIndex = 6 ;

             document.function(e){

                 var e =e||event;

                 var x = e .clientX-specWrap.offsetLeft-lf;

                 var y = e .clientY-specWrap.offsetTop-tp;

                 current.style.left = x +'px';

                 current.style.top =y+'px';

             }

             document.function(){

                 document.null;

                 document.getElementsByClassName('re')[0] .innerHTML = current .innerHTML;

                 current.style.position = '' ;

             }

         }

     }

</script>

</ html >

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_43101321/article/details/89207866

dy("nrwz");

查看更多关于js实现表格拖动选项的详细内容...

  阅读:44次