一个学渣 发表于 2024-4-23 09:28

js脚本如何为函数添加一个参数,让其能在调用的时候控制选择style?

本帖最后由 一个学渣 于 2024-4-23 19:27 编辑


函数使用t.tips('5555')调用,我想为函数添加一个参数,让其能在调用的时候控制选择新建的tipsStyle2 ,该怎么写?求帮助




if (!tipsDom) {
                t.initTips();
                tipsDom = parentNode.querySelector(tipsSelector);
                if (!tipsDom) {
                  debug.log('init h5player tips dom error...');
                  return false
                }
            }

            const style = tipsDom.style;
            tipsDom.innerText = str;

            for (var i = 0; i < 3; i++) {
                if (this.on_off) clearTimeout(this.on_off);
            }

            function showTips () {
                style.display = 'block';
                t.on_off = setTimeout(function () {
                  style.opacity = 1;
                }, 50);
                t.on_off = setTimeout(function () {
                  // 隐藏提示框和还原样式
                  style.opacity = 0;
                  style.display = 'none';
                  if (backupStyle && backupStyle !== 'style-backup:none') {
                        parentNode.setAttribute('style', backupStyle);
                  }
                }, 2000);
            }

            if (style.display === 'block') {
                style.display = 'none';
                clearTimeout(this.on_off);
                t.on_off = setTimeout(function () {
                  showTips();
                }, 100);
            } else {
                showTips();
            }
      },
      /* 设置提示DOM的样式 */
      initTips: function () {
            const t = h5Player;
            const parentNode = t.getTipsContainer();
            if (parentNode.querySelector('.' + t.tipsClassName)) return

            // top: 50%;
            // left: 50%;
            // transform: translate(-50%,-50%);
            //通知提示背景透明度
            //margin-left: 20px;离左边一段距离 margin-top right右侧对齐
            const tipsStyle = `
      position: absolute;
      z-index: 999999;
      font-size: ${t.fontSize || 16}px;
      padding: 5px 10px;
      margin-right: 120px;
      background: rgba(0,0,0,0.7);
      color:white;
      top: 0;
      right: 0;
      transition: all 500ms ease;
      opacity: 0;
      border-bottom-right-radius: 5px;
      display: none;
      -webkit-font-smoothing: subpixel-antialiased;
      font-family: 'microsoft yahei', Verdana, Geneva, sans-serif;
      -webkit-user-select: none;
      `;
            
   const tipsStyle2 = `
      position: absolute;
      z-index: 999999;
      font-size: ${t.fontSize || 16}px;
      padding: 5px 10px;
      margin-right: 120px;
      background: rgba(0,0,0,0.7);
      color:white;
      top: 0;
      right: 0;
      transition: all 500ms ease;
      opacity: 0;
      border-bottom-right-radius: 5px;
      display: none;
      -webkit-font-smoothing: subpixel-antialiased;
      font-family: 'microsoft yahei', Verdana, Geneva, sans-serif;
      -webkit-user-select: none;
      `;

const tips = document.createElement('div');
            tips.setAttribute('style', tipsStyle);
            tips.setAttribute('class', t.tipsClassName);
            parentNode.appendChild(tips);
      },
      on_off: new Array(3),
      rotate: 0,
      fps: 30,

axius 发表于 2024-4-23 10:38

t.initTips(type = 1);
// 以下函数中判断, style1为默认的样式, 当type不为1时,为style2样式
let tipsStyle = type === 1 ? style1 : style2

一个学渣 发表于 2024-4-23 12:37

axius 发表于 2024-4-23 10:38
t.initTips(type = 1);
// 以下函数中判断, style1为默认的样式, 当type不为1时,为style2样式
let tipsSt ...

只加一句不够吧?提示type未定义

initTips: function () {
            const t = h5Player;
            const parentNode = t.getTipsContainer();
            if (parentNode.querySelector('.' + t.tipsClassName)) return
let tipsStyle0 = type === 1 ? tipsStyle : tipsStyle2(这里提示type未定义)
      
            const tipsStyle = `
      position: absolute;
      z-index: 999999;
      font-size: ${t.fontSize || 16}px;
      padding: 5px 10px;
      margin-right: 120px;
      background: rgba(0,0,0,0.7);
      
      `;

const tipsStyle2 = `
      position: absolute;
      z-index: 999999;
      font-size: ${t.fontSize || 16}px;
      padding: 5px 10px;
      margin-right: 120px;
      background: rgba(0,0,0,0.7);
      
      `;
            const tips = document.createElement('div');
            tips.setAttribute('style', tipsStyle);
            tips.setAttribute('class', t.tipsClassName);
            parentNode.appendChild(tips);
      },
      on_off: new Array(3),
      rotate: 0,
      fps: 30,

axius 发表于 2024-4-23 15:28

一个学渣 发表于 2024-4-23 12:37
只加一句不够吧?提示type未定义

initTips: function () {


initTips: function (type=1) {}//函数初始化的时候,设置参数
//调用函数的时候,如果type为2 就 initTips(2); 如果type为1 可以不传

一个学渣 发表于 2024-4-23 19:20

axius 发表于 2024-4-23 15:28
initTips: function (type=1) {}//函数初始化的时候,设置参数
//调用函数的时候,如果type为2 就 ini ...
不知道为什么,可能函数找的不对吧,加上了就失效
页: [1]
查看完整版本: js脚本如何为函数添加一个参数,让其能在调用的时候控制选择style?