-
部分代码无法暂时 某尾有原文链接可查HTML+CSS+JavaScript实现 先点赞后观看,养成好习惯 “不想动手的小伙伴可以直接拿网盘成品” 阿里云盘------提取码: 0d5j 效果图 注:任意浏览器都可以,建议使用谷歌浏览器 代码部分 代码如下仅供参考 可以直接拿去复制粘贴 <!DOCTYPE html> <html> <head> <title></title> <script src="js/jquery.min.js"></script> </head> <style> * { padding: 0; margin: 0; } html, body { height: 100%; padding: 0; margin: 0; background: #000; } .aa { position: fixed; left: 50%; bottom: 10px; color: #ccc; } .container { width: 100%; height: 100%; } canvas { z-index: 99; position: absolute; width: 100%; height: 100%; } </style> <body> <!-- 樱花 --> <div id="jsi-cherry-container" class="container"> <audio autoplay="autopaly"> <source src="renxi.mp3" type="audio/mp3" /> </audio> <img class="img" src="./123.png" alt="" /> <!-- 爱心 --> <canvas id="pinkboard" class="container"> </canvas> </div> </body> </html>
-
如何让单选框选中后下次进入后还能保持选中啊?或者如何让网页自动判断单选框被选择过?
-
给大家安利一个免费且实用的前端刷题(面经大全)网站,👉点击跳转到网站。 本节教程我会带大家使用 HTML 、CSS和 JS 来制作一个 简易版英雄联盟小游戏 本节示例将会实现如下所示的效果: 在线演示地址:https://code.haiyong.site/moyu/damaoxian/ 源码也可在文末进行获取 ✨ 项目基本结构 大致目录结构如下(共27个子文件): ├── css │ └── style.css ├── js │ ├── Base64Images.js │ ├── cocos2dtgme.js │ └── app2.js ├── res │ ├── bg │ │ ├── map1_01.jpg │ │ ├── map1_02.jpg │ │ ... │ │ └── map1_09.jpg │ ├── npc.png │ ... │ └── start.png └── index.html 场景展示 HTML源码 <img src='share.png' width=1 height=1 /> <div class="orient" id="orient"><p>请在竖屏情况下使用</p></div> <div id="loadicon"><img id="img1"/><br/><img id="img2"/><br/><img id="img3"/></div> <canvas id="gameCanvas" width="445" height="700"></canvas> CSS 源码 html,body html, body { background-color: #191919; margin: 0; padding: 0; width: 100%; height: 100%; text-align: center } id 为 loadicon 的 div #loadicon { margin-top: 250px; } id 为 orient 的 div #orient { margin-top: 50px; } 1 2 3 p 标签 p { color: #FFFFFF; font-size: 24 } JS 源码 js 代码较多,这里提供部分,完整源码可以在文末下载 横屏提示 function orientationChange() { if (window.orientation == 90 || window.orientation == -90) { document.getElementById("gameCanvas").style.display = "none" document.getElementById("orient").style.display = "block" } else { document.getElementById("gameCanvas").style.display = "block" document.getElementById("orient").style.display = "none" } } document.getElementById("orient").style.display = "none"; orientationChange() window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", orientationChange, false); function trace(v) { // console.log(v) } var ccConfig = { "debugMode": 0, "showFPS": false, "frameRate": 30, "id": "gameCanvas", "renderMode": 1, "engineDir": "./../", "modules": ["cocos2d"], "jsList": [] } document["ccConfig"] = ccConfig; document.getElementById("img2").src = cc._loadingImage; document.getElementById("img3").src = cc.tgideasLogo; var GD = {} GD.GETNUM = 0; GD.SCORE = 0; GD.isApp = true, GD.isWin = false; GD.MAXHITUM = 0; GD.SHARE = "我没能完成勘探新召唤师峡谷的,你行你来啊!" GD.MAXTIME = 60; GD.SOUND = false; GD.USETIME = 0; function complete() { orientationChange(); document.getElementById("loadicon").style.display = "none"; cc.game.run(); } Base64Images.js var cc = cc || {}; cc.barWidth=265; cc.barHeight=25; cc.barColor=[255,255,0,255]; cc.barBgColor=[41,41,41,255]; cc.bglayerColor=[25,25,25,255] cc.tglogotexture2d=null; cc._loadingImage = "data:image/gif;base64,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" cc.tgideasLogo="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ4AAAA1CAYAAACwXlJWAAASXklEQVR4nO2deZhWxbHGf8UMyCIoixiCgiIiohKCoiQXxajghhohuBujcY9xuSiKeHNd4gp6FaJRcQFcICGij1FzIyJxuRrRaBD3ABcMUdSIENlkmTd/VJ+ZnjPn22BYxO99nvPMnD69d3V1dXdVfUYZ33hI2groDewIGDAbeMXMFm/UipWxeUPS1ZLelrRE0nJJf5c0UdKOG7tuZWyGkFQpaZJyY4WknTZ2PcvYzCDpJEkr8xBelaR7JFXWd9kN6jvDMr4ekFQBHA7kIyoLcbas7/LrnZLL+NqggprNxO+B94F2QEfgVaAJcAbQKsStV2z2HE9S5zC71yWPNvVVn00Mq8PfbwM/ApoD/wB+ALTG6aMK0Eap3dcZkq6RNGJdiE/SCZJmStq2Puu2MSGpgaTbghyXD29JqveldrPneMCHwLnAzZLWtr0Lgd2A+yQ1r7eabUSYWRW+xH6VJ1oV8FtgaX2Xv0FkvMBtmhYZvQHwZeiYJH0lsEURac3MlqTDQtkXAE0lXWRma9ORBhwGvCTpIDP7pNQMJFWY2ZoS05iZlbTUSTJcRsvCGjNLiK0V3t9J/hbF+wp4Abix1PKLwXonvEA01+An48VgLnARsCikbw7cBHQqkK4BMFVSuqMaR///BGgSiO+fRdYnjd2BhyQdV0oeks4HGki6rdiBlNQQuFLSGDObW2SaRsAVQI8cUeYldQEOAF4OT1ugO95fs4EngftKnSibBCQ1kfTHIuSIBM+F2ZqkbyVpVpHpn8qSRSTtn4pXJemuEttxSCqPdyV1KCH9ZaHcNZKGFZmmsaRnQrr3JDUuIk2lpNsL9NfLcvnOJLVN9bdp7cWRTQOS2kmaLGl1EUSjEPdbUfqOckIsRHSrJD0gqWWOepikMyUti9Lcnqfe7SX1T4WlCe8dSdsX2Q+XS/oylf6XykNIkppK+l2q796U9N08aVpIGqX8B8KS9KK+7sSVC5J2kTSnCKJJMFFSiyh9J/l9YaH0VfIZnpcbSKqQdKj8CkiSbskT9xlJiyX9OApbF8I7S9LSVPoVkkbnSbOVpL9mtHWepDoih6QtJT0i56iFMFObAOGtLxnvX8BgYFkUtiL8TRNJFTDHzFZBtWA8DNguijMBuDmjHAFvmdnKOh+8cwcAtwFnAf8LHAfcT0a7AyH9BvheCLpVLp+Oz9nK4jAm/P0FfkBr+EbpPEkCLk9viMxssaRjgbHUyMYGdADekHS4mb0Y6t0QuB04mtqbg0XAw8DnqfrMYxM4l1svhGdmHwMfx2GSDgJ2N7Nbi8giLdB+amZ/KbEah+CD3hYfwFOAx4FzgM6purUGJgL7RMEtgauBxwoVJKk3EHPA181stqQ98U3RfHzyXEjtW4AVnlxHUDMhq4CnzOx9SceENhwcpWkBnCrppbDzb4gf/MZEtxK4FLgnPh34RkJSf0n/knR8gXgm6Y7U8jBKkRBcRFkDcywzA5U6SJbfbHyaEXeWgkylAkutfHmOMTSEP5ajHsskXRviVKi2XFalaOMilzmnp9Lfq2i5lNRS0pPh20JJg6NvbbQeLvnXFRtyrV+Dz8zRks5TCYSUIAxS4/C/yXdnleGJ2/IOzt3S+DVwYipsH2CbVNgM4Dgze6PIqqWPVRIR49Mc8a8KT4JF0f9rcK4HgJn9A5iar3Az+wI/KroPOMvMJgFI2g34A368sklhQ86EhNBaA7cCW6rumVsuJHGaAg9K6gMsD3lWhuc/gXEAZvaepBPw5XNAlE9bYJykSjO7L4StSpX1DjDAzOaX1Lrs+qb7dw1wupmNLTJ9gvQkrdNnZvYZ8NPqCFIP4CX8IHkv+VHTJevjMHhtsLF2NxX4DC3mNgKgysxkZl8CQ/AObY9fbrfFT+Br3YyE24lTgQdwmSdG3zxlzcAvytcFyc3I67hsNwEX9H9aJNEtKxAn3zUX8hOCh6h9e3EO8F8F8t1g2Jjb6lKE3n0ltQUws1nAyfjJeozV6UThZuEMfLcaI9+VWSXrrgZ0SPj7a3yCJU8xO+QK4MACcXqSf7VaAkyi9iatKTBcec4wNyQ2JOGly8rH8tMDvyfwhKRuAGa2CPgx8AQZBJfCSuCzEuqpAnXLQsPU+7GSxgDNzGxleFblWOZE7SOmBsAkSWfIj0qy8u8NPCepMxkIO9mrcTlyYfSpEXC6pOu0kZUdNiThrSgcBcLg/Iq6gnkvYKKkXUO8hfi53Hice+a7U8x1YZ71LYs4CokEY6g9wOATY2yhHWUgkvszPo0Azg7/349r2cToDUyW1BWqr8taJA+uNXwdTnxx3zcCLgb2KNCmzQdya6bkFP9t5b822kZ+ep++vZgjqWuyK5bfB0+XdHmevH6k2kcmd0TftpffhSblLJXfEHwo6X35nWkbSS/Jr+ekjJsLSYPDUUYaUxVdBeaoX1O5bUPWzcNFkhpK2kF+6xBjhqRdQh6Hyi3E0s+nUb2T9l1Y7JhtFgiDOCx0wExJeTmJpC6SXs0YjHmSDo7itVaBS3tJfSXNDul/lfq2rVzJIE3kyyU1CXGaSbpLfn/6tjKuzCT9QD4xYkxXEWaC8muvX6jmWi/BAwrXiZK6qeYq7U+KllpJAzL6KY2lkk6Va7B88yDpwkAE+ZbAOP4LqssNlkvaWyVoFkvqJekjSXWWNrkmzFsp4lsS11F+bvhwILxMQpe0n5zLVMkv9gtqlaTyHy7nUKslTcqIs6WkB9PEI+nwAkS3WNKRxdZls4RcHjmlBMLrID+tfzL1PC2pV4llHyLnLHXkW/kNwEOS5sq56qwswpFz7fZ5yugj6T4VqUiQSlsp12i5RVKzEtIdKOn1HM90ScdmtXljoeTbg/qCStSslQvpWdxt9Vpo9ebUBJbvJKtFgAyNZiQ1KHQHKj+kLrTjrrf0gahycVeZ2fK1rUsZZZRRRhlllFFGGWWUUUYZZZRRRhlllFFGGWWUUUYZZZSx4SHXd6tzR1rqhbNSVmVpBYGgHVKU8ZHc0r4Uc8eGcv2+OmnkunA5NVzkunj16hEzV98FJYWCfRDqXLSzSLl1XovCMfPm0ayUPi+EypBpZ9wFV4LxwMlmNhrXYr0rFNrTzB4KcYZKGotr8B6RI//xQU0d4Ei54fQ4XJV7qKTrzWyl/HcW7gF+RsoQPAfGAZdLOhEYVYTLsAHAZbjG8v+nvp0N/Ak3zMnC9cBdwGtZHyXtDbQ3s0fDew9gvyjKSuCJlNXaUEljzWxBKrvJuNH3jALtORIYhHtrKAYdgWsl/Sxobq8NhgH/Q13PBNWQK+PmUnr9ArgpcRGXzLzvAmfiVu+34qaDx0s6E1ex3gYYSW37hsbAFFyVuiXQDe+MluG5GbcAS/AMcB5u0b8mlJV8PwnYGthV0gGSdpK0haQrU0/ikXPvUBcB05THY2XQNhkC/A03jWwtV/xM7Fp3wO19kfR9ud5f9QOcBrwS3hOPT1MjDtIEN5lMFFP7An2ifjgW6JKqVmNgSka9eyV1KYBm1LUFzgkzm4OP9X6F4kK19vfFqeDO+FgncW5UULuP8H3gOXwCpZ/dicwMYrb+LjAa+Dmuj/8KTpDbAfviPtM6StrVzN7FbQK2xU0Pr5Jb3Q82s6tCxS5LNX6p3AvT2bjpXeL77TOcI02hxgb2WdzGIDHSaYHbzd4d3hO3DaNDvXoAL2Z04LeAW4CngBtxIrojPLul4lbgvvk6hnqcEMpcgKtj9Qf6AcPxibkmtOs5SUfjBAzQBhhrZk+FfLOWuBG41dcBZBuex/VqDAyk9iTeB2ivuirsE9LcX9I1wC9xHzIjJE0pwjHlFtSdLGl0x8clxlLgZTP7KFUHwy0DqxETXmtqnPm9gw/U/ripXGL8LGAxVBPSBVkOc9IIM3s43gGjcQOUWcDvcCeMr+AuT8EH9G/4DN0SJ5xdcc6xh6RzcU6SDNgXwHxJPzSzaqMWSa1wW9YPgJvNbI1c83hlyC+NlqHNiR+SBqGeq8J7S9yedUSIfzdO0OATpUJuiHQUcGeUbxPguMAdHjWzj0PfDaewhRw4d7sYd06ZYHFoR7xUDwP+D/gkTKLu+JLdE584bwLPA1tL+g4wxMwGFVH+ekFMeF1wr0qGN7QvToh/xomiHfA2wRIfXzIXSjoL75ytgcZB6E0T43LgE3ygTsJnRltgJ5zID8FlsG3wJfso3Gh7J+B0nPu9iXO6ucBf8aX/cXzCfBYTXcDOoZweuAdPcC7zHj77D4ojBxvck+UmlP3INppuAGxlZtcDSLoUOCa0pRcuC14HxDN+JG5xtjXQXNKtoc5TgGdDHgm2AK6RlMhRfyA4DTKziUmkoJncNRV2WpRPk1CPo6P2LcGJE3lnfE9SPzObktFOgG1VW1W+PdBf0hfhfeuMNKuA34a+TuMTIq8NMeG9jA/+B7h3pf/AOcY43FJ/KO7D4+mQbiXu1PoEfFPQJFRmf2A6kbZw4Daj8M5ONhu7hTImm9nxgWDvxjv6VTNbLemGkGYmvow8ASCpH87pVuEC75nUNZ+cDtyLL5eXhLA+uPiQD93xCfBIxrdtQ59cH95H4TLNJDNbIOlJfPKeker8583sujBhL8UnbTKRL4niHYqLAclGZjFrpyXeg9RAxzCzjyRdDRwj6dkMbexFuM1y/HNSzXAxpFV4H09dk8tzyG0MXwV8mbzEhLcVsEv4f3R4bxUya4dzvl74bL0K331Wmdm9wL2RjHc5gKRTiIRRM6uStBBfXnbFNzF9gJ3lThC74AO7ECfIZ8xsjqQrQn2GRHWdHerxc9wFWJ1fGTQzSVqFE+SHgfi7kd/+NsEpZO/UK4mEfzNbLunL6PsDuPw1jhqu1x93tUFQZZ8bOFpLM1tGtMsOnOhjM4vDWoe/yRIPLqh3SoXtHP1/BvBGaHOuNo7DXXy0wYk0xlfAI/EOWNI+wJjggi7huhXh/+/gm8lk8jfF/V6/h/uvSfpoK0lXmtnUmPBa4psKA84HpuGzbxG+G2qM+wB5KQxqrgbF6Ai8Fb3fCdyA+5JL+wdJfIakLfmX40vsfjjBgW8k/hufhf0K2FwYcJKkfUN9xuSJm2Ae3mlpNCOPE/DASZ4CDjOzs+RuN/rjXG5tsQYXL6ZFYQ3xpS8O6wKsCPL0YeRpp6TuuNgwGd8UpQlve1w8uDJPvfrjK9z9uCzemBrufVz41gifgIl8ehNOZ9Ucz4A5uLB/He7R8w5qOnkJzqkexJeqag4jqSnZflCeB0zS47hMNQ1fApbhnZQ0dp6ZjQ/nYS0iL05I2g5f9ofi53aP4RNhUeicbma2KAjqD5rZvIx6CBcR5uAD2B7nWg/Xiei7r6dx2aorvsQ/jzvbmRGWSklqlToPs7D8r8a53tnhuOYA/Azvzxn1SgyYeprZ9KzvUO2uY2AqXTugR7JzDkh20a1DnTPPHQP6A53M7Nwc3yuou2NNowm1HSUtS9y6hUme4J9ReLU7tuQcrzt+zpYg64fTnsZnX0J0DXBZaDz+E0RpzMQJrStOKEfh1N8DmGFmfw/p52a1Su7b42bcB8g9uMw1EF9eR+I730MDyx9CbjcVjcxsvpm9EMo8H+hvZpMDocUyyYn4xOsKjAxL4RDczZeFb3sCEyQlS1sHXCQZiE+m5jgnGRbCn1GND5QYO+Lc4uiMb2sNM/vczAZFm62WRNZncnvcvfDNW32ikdxhesdQZoLmUXg1oVbKf490f/yo4zxcZppEDTc8EN+S/wRYZDW/2twT54gX4PJf91RFRuLCcwvc7ddpwF9wNjxG0qP47vFJSXfju9k3o/SDcXlvVJBVrsBn9XJ8J9kUn9nJgfQHGZ3xBdA7LH9fhTTdgVGS7sRl157APYHQr8UnyHKgg/ynAVbjk+y2kP51fFOxE078i/DJ8Bq+sRiEb2z2wjneRGCBpIm4jLQy9Nt+uIyV9npV31gGvC8pWZUMdyR5UoF0Z8pvhhK0AA6M8tkCPyJL0AlfJcFFmmQs+0bhPQl+YizMgGT5PBTfZVYvWfIroCNwwXFCcvUj6dtAEzObHd53APYxs99EafsBXczsdkkDQid0wA+Qj8R3Re/iA5AItJ+HtBbyXxbl1wn4JDkADe+nA9NyHQtI6osL0Alexwn6hBA+y8wmhLito/IH45yvOiv8YLiOw8ZwbnYOvow/jDsEV/jWHCfGzsBVZrZK0h7AguBMMc7nfuAGM3s/qy1RvP2Bfc3smnzxQtxmuFiSrG5VwPwse+EoTSNSfqIzsD3wuZm9JqkLMCg6ZjoY7+MPgN5m9scQPgh4J1xAlFEfUD1eoH8T8G/S6hUOQv7wEwAAAABJRU5ErkJggg=="; cc._fpsImage = "data:image/png;base64,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"; cc._loadingbar="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQwAAAAZCAYAAADE4BAPAAABcUlEQVR4nO3bsUpcURSF4X8rA8EHMMGnEGxEEVLmNVIFC0sxYKtFgoUkVZr4JoEYAmkF30AQsVMQBpLMtnAax+2MxdzJifxfd9n7wqoWl8s5IEmSJEmS1L6YtJCZc0/Zk/TfSiAjIictPloEw6JYBnaBVWBpavEktWIAnAHHwMeIOB23XBZGZi4A29yVRW/aCSU1J4FrYA84jIg/1dKDwsjMeeAzsNlpPEkt6gOfImKnGt4rjMwM4DXwrftckhp1BbyJiF+jg7ni+d1MIklq1QvgbTWoCmOj8ziSWtYD1qvBaGEAvOo2i6TGBbBYDarCkKRSVRgXM08hqSUJXFaD0cIYAD86jyOpZb+Bn9WgKowvnceR1LI+cFQN7hXG8Cz5MfB1BqEktacPHFVnMKD4hxERf4Et4AN3XxySnr8EboB94P1jS+Mun80DK8OX14CXUw4o6d8bAOfAd+AAOBl3a9Xr7ZKefL1dkiRJkiRJkp6VW+6FRsNvbjMxAAAAAElFTkSuQmCC"; cc._loaderImage = "data:image/png;base64,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" /* |xGv00|0cb03e49192ffd9f81ac0947222ee14e */ 图片资源 一共两百多张图片,全都打包放在文末的下载链接里了。 源码下载 1.CSDN资源下载(需要VIP):https://download.csdn.net/download/qq_44273429/86861932 2.从学长的资源网下载(更优惠):https://code.haiyong.site/579/ ———————————————— 版权声明:本文为CSDN博主「鲸落✗」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_53544522/article/details/127609148
-
HTC实现鼠标放上去超链接的文字逐个加色效果link.htc css文件中的调用方法 A { FILTER: progid:dximagetransform.microsoft.gradientwipe(duration=1); BEHAVIOR: url(jcss/link.htc); HEIGHT: 1px; TEXT-DECORATION: none }
-
保存为 五子棋.hta,运行即可看到效果 五子棋界面 - zh159 ID="MyhyliApp" APPLICATIONNAME="五子棋界面 - zh159" BORDER="thin" BORDERSTYLE="" VERSION="1.0" SCROLL="no" ICON="C:\WINDOWS\System32\wuauclt.exe" INNERBORDER="no" CONTEXTMENU="no" CAPTION="yes" MAXIMIZEBUTTON="no" MINIMIZEBUTTON="yes" SHOWINTASKBAR="yes" SINGLEINSTANCE="yes" SYSMENU="yes" WINDOWSTATE="normal" NAVIGABLE="yes" /> 电脑先下直接点击为玩家先下
-
目录Python读取HTML表格pd.read_html读取数据不完整问题解决办法Python读取HTML表格数据部门提供的数据是xls格式的文件,但是执行读取xls文件的脚本报错。xlrd报错:xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'<html xm'读取xlrd的脚本123456789101112131415161718data_lines = read_excel_file(self.file_path) def read_excel_file(file_path): """ 读取excel文件 """ import xlrd print('[Info] excel file: {}'.format(file_path)) book = xlrd.open_workbook(file_path) sheet = book.sheet_by_index(0) data_lines = [] for row in range(0, sheet.nrows): line_data = [] for column in range(0, sheet.ncols): val = sheet.cell(row, column).value line_data.append(val) data_lines.append(line_data) return data_lines # 二维数组原因是文件格式是HTML表格,参考python xlrd unsupported format, or corrupt file.使用pandas的read_html读取文件,同时替换nan为空字符,数据格式保持一致。1234567891011121314151617def read_html_table(file_path): """ 读取html表格 """ import pandas as pd pd_table = pd.read_html(file_path) df = pd_table[0] # num_col = df.shape[1] # num_row = df.shape[0] df_data = df.values.tolist() df_data = df_data[1:] for r_idx, row in enumerate(df_data): for c_idx, value in enumerate(row): # 判断nan,参考https://stackoverflow.com/questions/944700/how-can-i-check-for-nan-values if value != value: df_data[r_idx][c_idx] = "" return df_data读取问题解决。pd.read_html读取数据不完整问题问题:有一个较大的表格数据存在了html中,打算用read_html直接取出来这部分数据,但后来发现read_html读取的数据不完整,后来检查html的table都没有任何问题解决办法pd.read_html的默认解析器为 'lxml' ,添加参数flavor='bs4'便可解决
-
话不多说,在实际项目中生成截图是很常见的需求,而一般的,我们都会选择使用js库来自动生成(从头造轮子太难了...),比如今天的主角:html2canvas使用先来看下如何在 vue 项目中应用的import html2canvas from "html2canvas"; // 生成快照 const convertToImage = (container, options = {}) => { // 设置放大倍数 const scale = window.devicePixelRatio; // 传入节点原始宽高 const _width = container.offsetWidth; const _height = container.offsetHeight; let { width, height } = options; width = width || _width; height = height || _height; // html2canvas配置项 const ops = { scale, // width, // height, useCORS: true, allowTaint: false, ...options }; return html2canvas(container, ops).then(canvas => { // 返回图片的二进制数据 return canvas.toDataURL("image/png"); }); } // 调用函数,取到截图的二进制数据,对图片进行处理(保存本地、展示等) const imgBlobData = await convertToImage(element);仅此而已~~~遇到的问题如果只是这样就结束了,那这也太简单了吧,但是人无完人,再美的东西也会有瑕疵,下面列举一些 html2canvas 的问题及解决办法1、图片跨域解决方案:设置配置项 allowTaint: falsecanvas 的 CanvasRenderingContext2D 属于浏览器的对象,如果渲染过跨域资源,浏览器就认定 canvas 已经被污染了 Taint:污点设置配置项 useCORS: false表示允许跨域资源共享,注意不能与 allowTaint 同时配置为 trueimg 标签中添加 crossOrigin = "anonymous"anonymous:如果使用这个值的话就会在请求 header 中带上 Origin 属性,但请求不会带上 cookie 和客户端 ssl 证书等其他的一些认证信息图片服务器配置 Access-Control-Allow-Origin: *重要的配置项,是跨域问题的根本源泉,需要后端配合2、截图锯齿解决方案:根据设备像素比进行缩放// 设置放大倍数 const scale = window.devicePixelRatio;3、截图不全解决方案:截图之前将页面滚动到顶部document.body.scrollTop = document.documentElement.scrollTop = 0; const imgBlobData = await convertToImage(element);4、对 css3 支持不好html2canvas 暂不支持的 CSS 样式属性:background-blend-mode、background-clip: text、box-decoration-break、repeating-linear-gradient()、font-variant-ligatures、mix-blend-mode、writing-mode、writing-mode、border-image、box-shadow、filter、zoom、transform解决方案:对于一些必要的样式,可以选择使用图片做兜底实现box-shadow 可以参考 这个pr,修改源码解决,但是,实际效果也不是太理想……5、svg 标签问题原因:vue-lottie 动画库渲染的标签是 svg(也可能是你自己写的 svg 标签)html2canvas 对于 svg 标签的支持也不尽人意,解决办法同样是用图片做兜底在项目中,我们是用 svg 做动画,截图的时候把动画换成一张静态图,这样只要设置要静态图的样式,截图效果还是可以接受的6、其他建议:在页面开发前尽量跟产品确认好这个页面到底要不要截图,如果需要截图,那么搬砖的时候就要注意不要使用以上 css3 特性了,否则,就后期就只能含着眼泪、咬着牙修 bug 了不要问我是怎么知道的~~~原文链接:https://www.jianshu.com/p/e74dab30ea2c
-
1.$(function() {}) $(function() {}) 是jquery里面的一个写法,类似于原生js中的DOMContentLoaded事件。他其实就是$(document).ready(function()的简写。 那么这个函数是在什么时候执行的呢? 他是在DOM加载完毕之后就被执行了的,即页面所有的html标签(包括图片等)都加载完成了,浏览器已经响应完了,所有dom树全部展现到浏览器界面上了(就是各种各样的元素标签),一切准备就绪(其中图片,音视频等这些静态资源等还没加载前)这个函数就开始执行了。2.JSON.stringify() JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。他的语法是JSON.stringify(value[, replacer[, space]]),其中value为需要转化的数据;replacer是可选项。用于转换结果的函数或数组。如果replacer为函数,则JSON.stringify将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。如果replacer是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样;space也是一个可选项,是为文本添加缩进、空格和换行符的,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。一般我们使用的JSON.stringify(value)来快速将数据转换为json字符串。3.JSON.parse() JSON.parse() 方法将数据转换为 JavaScript 对象。他的语法是JSON.parse(text[, reviver]),其中text是必选项, 他必须是一个有效的JSON字符串,如果不是会报错的;reviver是可选项,是一个转换结果的函数, 会为要转换的对象的每个成员调用这个函数。4.JS获取当前网页的相关信息 在WEB开发中,时常会用到javascript来获取当前页面的url网址信息,下面是获取各个部分的小栗子 下面我们举个栗子URL= http://test.com/testPath?parm=123 4.1 window.location.href获取整个URL为字符串 var tem= window.location.href;返回:http://test.com/testPath?parm=123 4.2 window.location.protocol获取 URL 的协议部分 var tem= window.location.protocol; 返回:http: 4.3 window.location.host获取URL的主机部分 var tem= window.location.host; 返回:test.com 4.4 window.location.port获取与URL关联的端口号码 var tem= window.location.port; 返回:空字符(这是因为采用默认的80端口(即使手动添加了:80),那么返回值并不是默认的80而是空字符) 4.5 window.location.pathname获取与URL的路径部分 var tem= window.location.pathname;返回:/testPath 4.6 window.location.search获取 href 属性中跟在问号后面的部分 var tem= window.location.search; 返回:?parm=123 4.7 window.location.hash获取href属性中在"#"后面的参数 var tem= window.location.hash;返回:空字符
-
【功能模块】【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
yd_217039996
发表于2022-05-05 10:03:37
2022-05-05 10:03:37
最后回复
This is WeAutomate
2022-05-05 10:06:58
327 2 -
解决方法:1. 打开chrome浏览器,访问 chrome://extensions/2. 找到weautomate浏览器插件,单击“详细信息”。3. 单击开启“允许访问文件网址”。4. 关闭重启浏览器注:浏览器插件未安装成功,请参考如下链接文档手动安装插件https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=181670
-
详情代码见“get_html_to_local.rar”
-
问题现象:扩容14%失败问题分析:1.登录后台数据库,获取FAIL的jobidSelect task.* from taskmgr_task as task left outer join taskmgr_job as job on job.job_id = task.job_id where job.request like '%{clusterName}%' order by job_id, task_index asc;2.登录两个dwscontroller容器查看日志,用jobId过滤vpc:xxxxxxxx is not belong to this user.3.分析vpcid来源于原有节点的vpcId,是创建时使用用户,所以创建时和扩容时账户不一致,当前账户的projectid和当前集群的vpc不对等问题根因:用户权限不一致,建议使用创建集群的用户进行扩容恢复方案:1.找回原有创建时使用的用户,用此用户进行扩容寻找方法:1)在rds_cluster中获取userid2)用bssadmin管理员登录运营面,选择组织,点击用户管理,查看对应的而用户2.修改失败节点状态300为400,再次扩容update rds_instance set status=400 where status=3003.使用原来的用户进行扩容
-
在网络服务中,为了保护用户私密信息,会要求用户输具有一点安全几级别的密码,这样为了防止他人盗用,例如:一些游戏账号的,如果输入纯6位数字和6为字符就会提示强度太低,要求重新输入,一般计算密码强度验证的方式都是计算字符,然后分类加权重。权重越高相应的强度越高。 //设置提示文字颜色 function setColor(_this, cssOption) { //判断节点类型(防止我们传的节点类型是 空 || 文本 || 注释 || 文本节点(非htmL元素)) if (!_this || _this.nodeType === 3 || _this.nodeType === 8 || !_this.style) { return } for (var cs in cssOption) { _this.style[cs] = cssOption[cs] } return _this } //检测密码强度(第一个参数时密码框,第二个参数是显提示文字) function pwdstrength(pwdStrength, showStrength) { const self = this pwdStrength.onkeyup = function() { //按键抬起就去判断确认密码和密码时候样一致 inconsistent.className = (pwd.value === confimpwd.value) ? 'hidden' : 'show' let _color = ['red', 'yellow', 'orange', 'green'] let tipmess = ['密码太短', '弱', '中', '强'] _strength = 0 //密码强度值 _v = pwd.value.trim() _vL = _v.length //获取强度值 let charStrength = function(char) { //数字 if (char >= 48 && char <= 57) { return 1 } if (char >= 97 && char <= 122) { //小写 return 2 } else { return 3 } } //密码长度小于6个字符 显示密码太短 if (_vL < 6) { showStrength.innerText = tipmess[0] setColor(showStrength, { 'color': _color[0] }) } else { for (let i = 0; i < _vL; i++) { _strength += charStrength(_v.toLowerCase().charCodeAt(i)) } if (_strength < 10) { //强度小于10 showStrength.innerText = tipmess[1] setColor(showStrength, { 'color': _color[1] }) } if (_strength >= 10 && _strength <= 15) { //强度小于10 showStrength.innerText = tipmess[2] setColor(showStrength, { 'color': _color[2] }) } if (_strength > 15) { //强度小于10 showStrength.innerText = tipmess[3] setColor(showStrength, { 'color': _color[3] }) } } } }上面就是实现功能的核心代码:代码说明: setColor(_this,cssOption) 来配置显示强度文字的样式,第一个参数接收是目标元素(html) 第二个参数接收的是一个对象通过 for in 来拿到属性与属性值。pwdstrength(pwdStrength, showStrength)pwdStrength接收参数是操作目标 showStrength参数是显示文字样式强度计算规则:字符权重 : 数字 1 字母2 其他字符为 3 当密码长度小于6显示不合格(可以做样式提示)当字符长度>=6 强度小于 10 强度 ’弱‘当字符长度>=10 强度小于 15 强度 ’中‘当字符长度>=15 强度 ’强‘
-
WebSocketWebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。现很多网站为了实现即时通讯,所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客服端的浏览器,这种方式有一个很大的弊端,就是会占用很多的带宽。最新的轮询效果是Comet – 用了AJAX。但这种技术虽然可达到全双工通信,但依然需要发出请求。使用WebSocket,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道,两者之间就直接可以数据互相传送。而且它为我们实现即时服务带来了两大好处:节省资源:互相沟通的Header是很小的-大概只有 2 Bytes。推送信息:不需要客户端请求,服务器可以主动传送数据给客户端。socket.ioSocket.IO是一个WebSocket库,包括了客户端的js和服务器端的nodejs,它的目标是构建可以在不同浏览器和移动设备上使用的实时应用。socket.io的特点易用性:socket.io封装了服务端和客户端,使用起来非常简单方便。跨平台:socket.io支持跨平台,这就意味着你有了更多的选择,可以在自己喜欢的平台下开发实时应用。自适应:它会自动根据浏览器从WebSocket、AJAX长轮询、Iframe流等等各种方式中选择最佳的方式来实现网络实时应用,非常方便和人性化,而且支持的浏览器最低达IE5.5。WebSocket 安装部署1npm install socket.io服务监听socket.io的服务端启动非常的简单,引用socket.io模块。1var io = require('socket.io');然后调用listen函数,传入监听的端口号,开始服务监听。启用了80端口用于测试:1var io = require('socket.io')(80);注册事件12345io.on('connection', function (socket) { socket.on('disconnect', function () { })})connection事件在客户端成功连接到服务端时触发,有了这个事件,我们可以随时掌握用户连接到服务端的信息。当客户端成功建立连接时,在connection事件的回调函数中,我们还是可以为socket注册一些常用的事件,如:disconnect事件,它在客户端连接断开是触发,这时候我就知道用户已经离开了。WebSocket 启动服务目前为止,我们已经搭建好了一个最简单的socket服务器,为了在浏览器中能够访问到我们的服务,我们还需要在服务端搭建一个简单的web服务器,让浏览器能够访问我们的客户端页面。为了便捷,我们选用node.js中常用的express框架来实现web服务,示例如下:1234567891011var express = require('express');var app = express();app.get('/', function (req, res) { res.status(200).send('成功连接!')});var server = require('http').createServer(app);var io = require('socket.io')(server);io.on('connection', function (socket) { });server.listen(80);WebSocket 客户端引用服务端构建完毕,下面看一看客户端应该如何使用。服务端运行后会在根目录动态生成socket.io的客户端js文件,客户端可以通过固定路径/socket.io/socket.io.js添加引用。首先添加网页index.html,并在网页中引用客户端js文件:1<script src="//cdn.bootcss.com/socket.io/2.0.2/socket.io.js"></script>WebSocket 连接服务当客户端成功加载socket.io客户端文件后会获取到一个全局对象io,我们将通过io.connect函数来向服务端发起连接请求。1234567var socket = io.connect('/');socket.on('connect',function(){ //连接成功});socket.on('disconnect',function(data){ //连接断开});connect函数可以接受一个url参数,url可以socket服务的http完整地址,也可以是相对路径,如果省略则表示默认连接当前路径。与服务端类似,客户端也需要注册相应的事件来捕获信息,不同的是客户端连接成功的事件是connect。了解了客户端如何使用,下面我们创建网页index.html,并添加如下内容(保存):123456789101112131415<html><head> <script src="//cdn.bootcss.com/socket.io/2.0.2/socket.io.js"></script> <script> window.onload = function(){ var socket = io.connect('/'); socket.on('connect',function(){ document.write('连接成功!'); }); }; </script></head><body></body></html>页面添加完毕还要记得在服务端app.js中为它添加路由,让我们可以访问测试网页:123app.get('/index',function(req,res){ res.sendFile('index.html',{root:__dirname});});WebSocket 实时通讯服务端和客户端都构建完毕了,下面开始发送消息。当我们成功建立连接后,我们可以通过socket对象的send函数来互相发送消息,示例-客户端向服务端发送消息(index.html):12345678var socket = io.connect('/');socket.on('connect',function(){ //客户端连接成功后发送消息'hello world!' socket.send('hello world!');});socket.on('message',function(data){ alert(data);});连接成功后,我们向服务端发送消息hello world!,还为socket注册了message事件,它是send函数对应的接收消息的事件,当服务端向客户端send消息时,我们就可以在message事件中接收到发送过来的消息。服务端向客户端发送消息也可以通过send的方式,示例 - 服务端向客户端发送消息(app.js):1234567var io = require('scoket.io');io.on('connection', function (socket) { socket.send('Hello World!'); socket.on('message', function (data) { console.log(data); })});与客户端相同,服务端也需要为socket注册message事件来接收客户端发送过来的消息。WebSocket 发送信息socket.io既然是用来实现通讯的,那么如何发送、接收信息才是根本。在socket.io中,emit函数用于发送数据,我们使用send的方式实现了信息的互发,其实send函数只是emit的封装,实际上还是使用了emit,且看send函数是如何实现的:123456function send(){ var args = toArray(arguments); args.unshift('message'); this.emit.apply(this, args); return this;}在send函数中,获取到原来的参数,并在原来的基础上插入了一个参数message,然后调用了emit函数。通过send函数的实现,我们也学会了emit函数的用法,它有多个参数,第一个参数是事件名称,在接收端注册该事件就可以接收到发送过去的信息,事件名称可以自由定义,在不同的场景下,我们可以定义不同的事件来接收消息。第二个参数才是发送的数据。了解清楚了工作原理,下面来将send替换成emit函数发送信息:123456//app.jsio.on('connection',function(socket){ socket.emit('message','连接成功!'); socket.on('message',function(data){ });});WebSocket 服务端事件事件监听是实现通讯的基础,因此充分了解socket.io的事件,学习如何在正确的时候使用它们至关重要。在一些关键的的状态下,socket.io可以注册相应的事件,通过事件监听,我们可以在这些事件中作出反应,常用的事件如下:connection——客户端成功连接到服务器。message——捕获客户端send信息。。disconnect——客户端断开连接。error——发生错误。WebSocket 客户端较服务端而言,客户端提供更多的监听事件,在实时应用中,我们可以为这些事件注册监听并作出反应,例如:connect提示用户连接成功,disconnect时提示用户停止服务等等。connection——成功连接到服务器。connecting——正在连接。disconnect——断开连接。connect_failed——连接失败。error——连接错误。message——监听服务端send的信息。reconnect_failed——重新连接失败。reconnect——重新连接成功。reconnecting——正在重连。那么客户端socket发起连接时的顺序是怎么样的呢?当第一次连接时,事件触发顺序为: connecting → connect;当失去连接时,事件触发顺序为:disconnect → reconnecting → connecting → reconnect → connect。WebSocket 命名空间命名空间着实是一个非常实用好用的功能。我们可以通过命名空间,划分出不同的房间,在房间里的广播和通信都不会影响到房间以外的客户端。那么如何创建房间呢?在服务端,通过of("")的方式来划分新的命名空间:12io.of('chat').on('connection',function(socket){});示例中,我们创建一个名为chat的房间,客户端可以通过如下方式连接到指定的房间:1var socket = io.connect('/chat');虽然连接到指定的房间,但是我们也可以在服务端操作,自由的进出房间:12socket.join('chat');//进入chat房间socket.leave('chat');//离开chat房间WebSocket 广播消息在实时应用中,广播是一个不可或缺的功能,socket.io提供两种服务端广播方式。第一种广播方式可以称之为'全局广播',顾名思义,全局广播就是所有连接到服务器的客户端都会受到广播的信息:1socket.broadcast.emit('DATA',data);但是,在实际应用场景中,我们很多时候并不需要所有用户都收到广播信息,有的广播信息只发送给一部分客户端,比如某个房间里面的用户,那么可以使用如下方式:1socket.broadcast.to('chat').emit('DATA',data);中间件socket.io提供中间件功能,我们可以通过中间件来对请求进行预处理,比如身份验证:1234io.use(function(socket, next){ if (socket.request.headers.cookie) return next(); next(new Error('Authentication error'));});示例中展示了通过中间件进行身份验证,当没有cookie的时候抛出异常。传递参数在很多应用场景中,客户端发起连接请求时都需要传递参数,这些参数可能是身份验证、初始化设置等等,那么socket.io发起连接时如何传递参数呢?1var socket = io.connect('/');由于connect函数发起连接的参数是一个url,你可能会想到把参数拼接到url上,如http://xxxx?xx=xxxx,但是很遗憾这样是行不通的,我们可以通过这样的方式来传递参数:1var socket = io.connect('/',{ _query:'sid=123456' });在服务端可以这样获取到传递的参数:1234io.use(function(socket){ var query = socket.request._query; var sid = query.sid; });客户端传递的参数已经被解析成了一个json对象,这个对象就是_query。
-
如题。比如说我用其它的一些网页编辑软件做好一个html页面,同时还生成了一些css,js文件这样的,可以把这些一起上传然后作为网站里的一个页面吗?谢谢。
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签