Encontré un script de JavaScript con un efecto de nieve cayendo, y me preguntaba si es posible poner este script en el tema. Intenté insertarlo donde puse CSS, pero el sitio dio errores, ¿hay otro lugar donde pueda insertarlo o discourse no acepta este tipo de scripts?
¿Se puede insertar algún tipo de código javascript en la cabecera?
Y cuando hay código HTML combinado con CSS, ¿lo pongo en CSS normal o en CSS combinado?
¿Puedes mostrar el código que quieres insertar para que podamos entender mejor lo que quieres lograr?
html es
<div></div> 176 veces
y CSS es
body {
height: 100vh;
background: radial-gradient(ellipse at bottom, #1b2735 0%, #090a0f 100%);
overflow: hidden;
filter: drop-shadow(0 0 10px white);
}
@function random_range($min, $max) {
$rand: random();
$random_range: $min + floor($rand * (($max - $min) + 1));
@return $random_range;
}
.snow {
$total: 200;
position: absolute;
width: 10px;
height: 10px;
background: #fff;
border-radius: 50%;
@for $i from 1 through $total {
$random-x: random(1000000) * 0.0001vw;
$random-offset: random_range(-100000, 100000) * 0.0001vw;
$random-x-end: $random-x + $random-offset;
$random-x-end-yoyo: $random-x + ($random-offset / 2);
$random-yoyo-time: $random-yoyo-time * 100vh;
$random-scale: random(10000) * 0.0001;
$fall-duration: random_range(10, 30) * 1s;
$fall-delay: random(30) * -1s;
&:nth-child(#{$i}) {
opacity: random(10000) * 0.0001;
transform: translate($random-x, -10px) scale($random-scale);
animation: fall-#{$i} $fall-duration $fall-delay linear infinite;
}
@keyframes fall-#{$i} {
#{percentage($random-yoyo-time)} {
transform: translate($random-x-end, $random-yoyo-y) scale($random-scale);
}
to {
transform: translate($random-x-end-yoyo, 100vh) scale($random-scale);
}
}
}
}
\u003cscript src=\"https://sites.google.com/site/novoefeitoneve/home/novoefeitoneve/snowstorm.js\"\u003e\u003c/script\u003e
Intenté usar este javascript, pero no funcionó.
No recomendaría enlazar un script de javascript externo si no sabes cuán confiable es. Si el script remoto cambia, podría dañar tu foro.
Sugiero que crees un nuevo componente de tema en tu panel de administración en su lugar. Nómbralo algo como “efecto de copo de nieve”.
Edita este nuevo componente de tema.
-
En la pestaña Head, copia y pega el código javascript dentro de una etiqueta HTML
\u003cscript\u003e. -
En la pestaña CSS, pega el código CSS, sin la parte
height: 100vh;enbody {. -
En la pestaña Footer, pega 176 veces
\u003cdiv class=\"snow\"\u003e\u003c/div\u003e. -
Disfruta de tu nieve.
Ten en cuenta que este efecto fue creado por alguien en su propio entorno HTML, no es “compatible con Discourse” directamente y, por lo tanto, puede causar problemas en tu foro.
Realmente deberías leer esto @danielabc si aún no lo has hecho:
Es posible que utilices esto como modelo: Componente de tema de nieve invernal ![]()
Encontré este efecto de nieve y me gustó mucho, pero solo funciona en el escritorio, en el móvil no, ¿por qué? ¿Tendré que activar algo en el móvil para que funcione?
<script>if(typeof jQuery=='undefined'){document.write('<'+'script');document.write(' language="javascript"');document.write(' type="text/javascript"');document.write(' src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">'+'');document.write('</'+'script'+'>')}</script><script>if(!image_urls){var image_urls=Array()}if(!flash_urls){var flash_urls=Array()}image_urls['rain1']="https://static.tumblr.com/wt4apym/gG6mxfzjz/lakeside_snowflake.png";image_urls['rain2']="https://static.tumblr.com/wt4apym/gG6mxfzjz/lakeside_snowflake.png";image_urls['rain3']="https://static.tumblr.com/wt4apym/gG6mxfzjz/lakeside_snowflake.png";image_urls['rain4']="https://static.tumblr.com/wt4apym/gG6mxfzjz/lakeside_snowflake.png";$(document).ready(function(){var c=$(window).width();var d=$(window).height();var e=function(a,b){return Math.round(a+(Math.random()*(b-a)))};var f=function(a){setTimeout(function(){a.css({left:e(0,c)+'px',top:'-30px',display:'block',opacity:'0.'+e(10,100)}).animate({top:(d-10)+'px'},e(7500,8000),function(){$(this).fadeOut('slow',function(){f(a)})})},e(1,8000))};$('<div/>').attr('id','rainDiv')
.css({position:'fixed',width:(c-20)+'px',height:'1px',left:'0px',top:'-5px',display:'block'}).appendTo('body');for(var i=1;i<=20;i++){var g=$('<img/>').attr('src',image_urls['rain'+e(1,4)])
.css({position:'absolute',left:e(0,c)+'px',top:'-30px',display:'block',opacity:'0.'+e(10,100),'margin-left':0}).addClass('rainDrop').appendTo('#rainDiv');f(g);g=null};var h=0;var j=0;$(window).resize(function(){c=$(window).width();d=$(window).height()})});</script>
<script>if(typeof jQuery=='undefined'){document.write('<'+'script');document.write(' language="javascript"');document.write(' type="text/javascript"');document.write(' src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">'+'');document.write('</'+'script'+'>')}</script><script>$(document).ready(function(){var a=$('<img/>').attr({'src':'https://static.tumblr.com/wt4apym/gG6mxfzjz/lakeside_snowflake.png','border':0});$('<a/>').css({position:'absolute',right:'0px',top:'22px','z-index':'90'}).attr({'href':'http://tutorialuntukblog.blogspot.com/2011/10/tutorial-kelopak-bunga-berguguran-di.html'}).append(a).appendTo('body')});</script>
Lo veré, gracias
Lo instalé pero no pasó nada ![]()
Honestamente, tomar un efecto de nieve aleatorio de Internet e intentar que funcione en Discourse no es una tarea necesariamente fácil.
Discourse tiene sus propias restricciones, y la mayoría del javascript que deseas incluir en Discourse necesita ser modificado y adaptado a estas restricciones.
Lo intenté ayer y en el estado actual, el efecto es bastante… sutil. Seguramente podría mejorarse, pero de nuevo, eso requiere trabajo.
También estoy de acuerdo con los demás, si quieres agregar personalizaciones a tu sitio web (pareces estar muy involucrado en él y lees Meta mucho), deberías empezar por el principio y comprender los conceptos básicos de HTML, CSS y javascript.
Creo que la ayuda gratuita aquí para tales personalizaciones será limitada.
Gracias por aclarar mis dudas, una cosa que no entendí es que los efectos funcionan en el sitio para escritorio, pero no para teléfonos celulares, ¿por qué es???

