// 表单校验 /** * 普通输入框校验 * @param {*} el:dom对象 * @returns boolean */ // function inputValidate(el) { // $(el).bind("input propertychange", function () { // if ($(this).val().trim().length === 0) { // $(this).next(".invalid-feedback").show(); // } else { // $(this).next(".invalid-feedback").hide(); // } // }); // if ($(el).val().trim().length === 0) { // return false; // } else { // return true; // } // } /** * 邮箱输入框校验 * @param {*} el:dom对象 * @returns boolean */ // function emailValidate(el) { // var regex = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; // $(el).bind("input propertychange", function () { // if ($(this).val().trim().length === 0) { // $(this).next(".invalid-feedback").show(); // } else { // if (!regex.test($(this).val())) { // $(this).next(".invalid-feedback").show(); // } else { // $(this).next(".invalid-feedback").hide(); // } // } // }); // if ($(el).val().trim().length === 0) { // return false; // } else { // if (!regex.test($(el).val())) { // return false; // } else { // return true; // } // } // } /** * 下拉选择框校验 * @param {*} el:dom对象 * @returns boolean */ // function selectValidate(el) { // $(el).change(function () { // if (!$(el).val()) { // $(this).next(".invalid-feedback").show(); // } else { // $(this).next(".invalid-feedback").hide(); // } // }); // if (!$(el).val()) { // return false; // } else { // return true; // } // } /** * 加入购物车-抛物线动画 * @param {String} addElement 添加购物车按钮class * @param {String} cartElement 购物车图标class * @param {Number} addNumber 添加数量 */ function addCartByParabolaAnimation(addElement, cartElement, addNumber) { var initX = $(addElement).offset().left + $(addElement).outerWidth() / 2 - 14, initY = $(addElement).offset().top, targetX = $(cartElement).offset().left, targetY = $(cartElement).offset().top; addNumber = addNumber > 99 ? "99+" : addNumber || 1; // 获取初始元素到目标元素的偏移总量 var diffX = targetX - initX; var diffY = targetY - initY; var a = 0.001; // 则 b = (y - a*x*x) / x var b = (diffY - a * diffX * diffX) / diffX; // 定义一个定时器,用来执行抛物线动画 var timer = null; // 执行的时间 var duration = 500; var cartNumDom = '' + addNumber + ""; $(document.body).append(cartNumDom); $("#addCartNum").css({ display: "block", "z-index": "9999", top: initY + "px", left: initX + "px", }); // 执行的开始时间 var beginTime = new Date(); // 结束的时间 var endTime = +beginTime + duration; // 定时器,执行抛物线动画 timer = setInterval(() => { let now = new Date(); let x, y; if (now > endTime) { // 运行结束 x = diffX; y = diffY; clearInterval(timer); $("#addCartNum").remove(); $(cartElement).addClass("animated bounceIn"); } else { $(cartElement).removeClass("animated bounceIn"); // 计算每一步的X轴的位置 x = diffX * ((now - beginTime) / duration); // 则每一步的Y轴的位置y = a*x*x + b*x + c; c==0; y = a * x * x + b * x; } $("#addCartNum").css({ left: `${initX + x}px`, top: `${initY + y}px`, }); }, 13); } // 初始不需要替换首字母大写的数组 var notModifyWords = [ "GenExact", "LocoMMotion", "synIXR", "SCRaMbLE", "synVI", "SurePAGE Bis-Tris", "CloneEZ", "cGMP", "iGEM", "SurePAGE", "sgRNAs ", "pDNA ", "hgRNA", "ssDNA", "tCTSs", "ddPCR", "qPCR", "AapCas12b-crRNA", "qRT-PCR", "mRNA", "iTOP", "lentiCRISPR", "PLANTeDIT", "gRNA", "dsDNA", "crRNA", "sgRNA", "tracrRNA", "iPSCs", "ssODN", "siRNA", "shRNA", "Foxi1-rtTA", "lssDNA", "SsODN-mediated", "N-gene", "SARS-CoV-2", "hSOD1", "RNPs", "iPSC-derived", "T-cell–like", "anti-CD9-CAR", "B-cell", "HvMLO", "TaMLO1", "TaTMT3B", "CRISPR/Cas9", "TaMLO-D1", "TaMLO-A1", "aaRSs", "aminoacyl-tRNA", "peptide-RNA", "tRNA", "ncAA", "cDNA", "bNAbs", "sequencing/qPCR", "MazF-qPCR", "MAZTER-seq", "pcDNA3.1", "m(6)A", "sTGFβR2", "CD38/CD3xCD28", " RT-qPCR", "rRT-PCR", "MeiraGTx", "AAV2-hAADC", "FinchTV", "ddNTPs", "microRNAs", "cardiomyOPathy", "BioNTech", "hTERT", "hRBCs", "nuORFs", "ShRNA", "mTORC1", "PfRH5", "O‐GlcNAc", "MenACWY", "IL-6/sIL-6R", "eOD-GT8", "iNGN", "hiPSCs", "dNTPs", "5xFAD", "EpCAM", "lncRNAs", "EGFRvIII", "MiRNA", "sVNT", "TriTAC", "rVSVΔG-SARS-CoV-2", "GenOMICC", "RaTG13", "CasFISH", "Cas9-gRNA-lipid", "GenCRISPR", "gRNA/Cas9", "in", "on", "with", "by", "for", "at", "about", "under", "of", "to", "CustomArray", "PolyExpress", "AntibodyPurification", "ToxinSensor", "DNA", "RNAi", "ORF", "Ni-NTA", "IVD", "LAL", "CRISPR", "Bis-Tris", "sgRNAs", "pcDNA", "CD38", "CD3xCD28", "RT-qPCR", "BioNTech", "IL-6", "sIL-6R", "Cas9", "and", "pVNT", "GenParts", "GenParts™", "COVID-19", "T-Cell", "Neoantigen-reactive", "3D-printed", "High-Quality", "SARS-CoV2", "CDRs", "“Hot", "the", "NeoPre™", "NeoPre™;", "GenScript’s", "GenScript", "Single-Stranded", "ssDNA", "ssODNs", "HDR", "Knock-In", "(ssDNA", "or", "(HDR)", "ssODNs)", "VEGFC", "RNA", "FITC-FCPF", "FITC-FCPF,", "mRNA-1273.351", "circRNARBD", "Immuno-Oncology", "TdT", "GenScript's", "SARS-CoV-2β", "SEAKER,", "SEAKER", "CAR", "PD1/PDL1", "SOCS1", ]; // 初始不需要替换首字母大写的数组生成的对象 var notModifyWordsReplaceObj={} for(let i=0,len=notModifyWords.length;i 0) { // let bannerTitle = doReplaceInitialHandler($('.banner-title').html()); // $('.banner-title').html(bannerTitle); // } // $.each($('.boxTitle'), function (i, n) { // let newTitle = doReplaceInitialHandler($(this).html()); // $(this).html(newTitle); // }); // 首字母大写处理 暂不处理勿动 end