【JS自用案例3-1】创建复制按钮

心血来潮,想弄个按钮,来控制页面部分组件的显示,另一种简单粗暴的方法就是绑定页面的body来控制
其实这个实用意义还是不大的,主要还是通过个鸡肋需求来学习JS一些知识。


// @require      http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js
//============================添加以上库============================

var eleAppeend = document.getElementsByTagName("body")[0]

//区别于函数,用了钩子和const类型
const lamsButton = (buttonNum = "1", para = eleAppeend) => {
    var ButCre = document.createElement("button");

    //添加Class属性,一般用不上,除非回调自己的div
    var divClass = document.createAttribute("class");
    var ClassName = "lamsdivClassValue"+buttonNum
    divClass.value = ClassName;
    ButCre.setAttributeNode(divClass);


	  ButCre.innerHTML = "我就是按钮 【"+ buttonNum +"】 !怎么啦!";

//为div添加样式 简洁大方为主,调字体大小、div高度
    var style = document.createAttribute("style");
    ButCre.setAttributeNode(style);


    ButCre.style.height = "40px";
    ButCre.style.width = "75px";
    ButCre.style.background = "#4662d9";
    //粉红
    //ButCre.style.background = "rgb(237, 79, 121)";

    ButCre.style.borderRadius = "20px"

    ButCre.style.color = "#fff"
    ButCre.style.border = "2px"
    ButCre.style.solid = "#73A6F8"
    ButCre.style.fontWeight = "bold"
    
    ButCre.style.cursor="pointer"
    ButCre.style.marginLeft = "10px"

//如果想固定按钮一直悬浮页面,添加以下style即可
    ButCre.style.position = "fixed";
    ButCre.style.bottom = "50%";
    ButCre.style.right = "10px";


// 为创建的标签ButCre找一个爸爸贴贴,也就是设置标签的位置
    if(para){
        para.appendChild(ButCre);
    }


//点击按钮需要触发的函数,有两种绑定方式
    //但这种方式只能触发一次
    ButCre.onclick = console.log("click Button"+buttonNum + " now");
//注意添加JQ库
    // $的方式可以触发多次
      $("."+  ClassName ).click(() => {
        console.log("click more Button"+buttonNum + " now");
       });

};



// 方法一:
function Copyy(valueCopy="None") {
         // var input = document.getElementsByTagName("button")[0];
         // input.select();
         // 为什么不行呢?因为button对象不是input对象,没有select函数

        const input = document.createElement('input');
        document.body.appendChild(input);
        input.setAttribute('value', valueCopy);
        input.select();

        booll = document.execCommand("Copy");
        console.log("success ????")
        console.log(booll)
        //用完就可以清理一下
        document.body.removeChild(input);
     }

// 方法二:

// @require      https://cdn.bootcss.com/clipboard.js/2.0.1/clipboard.min.js
// 需要库
function Ccopy(trigger,tarText ) {

    var clipboard = new ClipboardJS(trigger, {
    text: function () {
    return tarText;

    }

  });

    clipboard.on("success", function (e) {
      console.log("success", e);
      alert("successfully copied");
      e.clearSelection();
      clipboard.destroy();
    });

    clipboard.on("error", function (e) {
      console.log("error", e);
      clipboard.destroy();

    });

}

 //judgeeCopyWithTime(document.getElementsByClassName("headline")[0])

function judgeeCopyWithTime(para){
	// 技巧积累:利用时间作为编号,以“标题+编号”为每张图片准备不同的名字复制用
    const Mits =  new Date().getMinutes()
    const Secs =  new Date().getSeconds()

    if(para){
        Copyy( para.innerText+ Mits.toString() + Secs.toString() )
    }else{
    console.log("找不到CLASS类,请重新添加para")
    }
}




//修改并替换
var eleAppeend1 = document.getElementsByTagName("body")[0]

setTimeout(function(){

    //创建1号按钮、2号按钮
    lamsButton("1",para = eleAppeend);

   $(".lamsdivClassValue1").click(() => {
   
//按理说这种方式也可以,但是我不知道为什么不行,多次触发只能Jq
//document.getElementsByClassName("lamsdivClassValue1")[0].click(() => {

    console.log("copy now")
    Copyy('听说你想复制我!!')

      // 方法二:
      // 不需要使用$为按钮1绑定函数,但也是只能触发一次copy
      // Ccopy(".lamsdivClassValue2" ,"听说你还想复制我??");


}, 2000);

其他

动态点击复制,哪里不会点哪里,参考本栏目
【JS自用案例6】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值