在html里如何用js控制两个容器中的内容互相拖拽,如何优雅的用js动态添加html代码...

###三种方案:

1.使用DOM

//使用createElement创建元素

var dialog = document.createElement('div');

var img = document.createElement('img');

var btn = document.createElement('input');

var content = document.createElement('span');

// 添加class

dialog.className = 'dialog';

// 属性

img.src = 'close.gif';

// 样式

btn.style.paddingRight = '10px';

// 文本

span.innerHTML = '您真的要GG吗?';

// 在容器元素中放入其他元素

dialog.appendChild(img);

dialog.appendChild(btn);

dialog.appendChild(span);

2.使用HTML5 template标签>接着还是得使用DOM操作,只是不需要创建元素了,然后复制一份副本放入正文即可。

var dialog = document.querySelector('#dialog_tpl');

dialog.content.querySelector('img').src = 'close.gif';

dialog.content.querySelector('span').innerHTML = '您真的要GG吗?';

document.body.appendChild(dialog.content.cloneNode(true));

3.使用HTML模板有各种模板,并且按语法风格分类。其实模板大同小异,就是动态修改模板文件使之成为一个可用的静态HTML文件,其实你也可以自己在需要的地方加载一部分HTML。只需要使用ajax请求一个情态的HTML文件并把返回的HTML代码放入当前的HTML中即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我作为语言模型无法提供完整的 class 类代码,但我可以给你一些思路和代码片段。 先说一下思路,可以用 HTML5 的拖放 API 来实现左右两侧的拖拽和排序,同时用 jQuery UI 的 sortable 插件来实现右侧的拖拽排序和移动动画。具体实现步骤如下: 1. 左侧多个拖拽内容,可以设置 draggable 属性为 true,表示可被拖拽。 ``` <div class="left-container"> <div class="draggable-item" draggable="true">item 1</div> <div class="draggable-item" draggable="true">item 2</div> <div class="draggable-item" draggable="true">item 3</div> </div> ``` 2. 右侧需要设置为 droppable,表示可以接受左侧拖拽过来的内容。同时,在 drop 事件可以获取拖拽过来的元素并添加到右侧容器。 ``` <div class="right-container" droppable="true"></div> $('.right-container').on('drop', function(event) { var draggableItem = event.originalEvent.dataTransfer.getData('text/plain'); $(this).append('<div class="dropped-item">' + draggableItem + '</div>'); }); ``` 3. 右侧的每个可拖拽按钮可以使用 jQuery UI 的 sortable 插件来实现排序和移动动画。可以在每个按钮上调用 sortable() 方法即可。 ``` $('.sortable-container').sortable(); ``` 综上所述,可以参考以下代码片段: ``` // 左侧可拖拽元素 <div class="left-container"> <div class="draggable-item" draggable="true">item 1</div> <div class="draggable-item" draggable="true">item 2</div> <div class="draggable-item" draggable="true">item 3</div> </div> // 右侧容器,可接受左侧拖拽过来的元素 <div class="right-container" droppable="true"></div> // 右侧可排序容器,每个按钮都可以排序 <div class="sortable-container"> <div class="sortable-item">button 1</div> <div class="sortable-item">button 2</div> <div class="sortable-item">button 3</div> </div> // 初始化 sortable 插件 $('.sortable-container').sortable(); // 右侧容器的 drop 事件 $('.right-container').on('drop', function(event) { var draggableItem = event.originalEvent.dataTransfer.getData('text/plain'); $(this).append('<div class="dropped-item">' + draggableItem + '</div>'); }); ``` 需要注意的是,拖拽和排序可能在不同浏览器存在兼容性问题,需要进行测试和调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值