2014-07-12 78 views
-1

我想在圖像上添加煙霧(即自動調整爲用戶屏幕寬度),是否有使用jQuery,CSS和HTML做這件事?非常感謝你。我將如何將其整合到此代碼中(我知道它很sl))。我寧願不使用任何外部文件...感謝您的幫助。jQuery:調整圖像的煙霧

This is my HTML: 
    <!DOCTYPE html> 
<html> 
<head> 
<style type="text/css"> 
    #myCanvas{ 
    background:black; 
    max-width: 100%; 
    opacity: .5; 
} 
img{ 
    position: absolute; 
    left:0; 
    max-width: 100%; 
} 
</style> 
<script type="text/javascript">//<![CDATA[ 
$(window).load(function(){ 
// Create an array to store our particles 
var particles = []; 

// The amount of particles to render 
var particleCount = 160; 

// The maximum velocity in each direction 
var maxVelocity = 2; 

// The target frames per second (how often do we want to update/redraw the scene) 
var targetFPS = 33; 

// Set the dimensions of the canvas as variables so they can be used. 
var canvasWidth = 1366; 
var canvasHeight = 768; 

// Create an image object (only need one instance) 
var imageObj = new Image(); 

// Once the image has been downloaded then set the image on all of the particles 
imageObj.onload = function() { 
    particles.forEach(function(particle) { 
      particle.setImage(imageObj); 
    }); 
}; 

// Once the callback is arranged then set the source of the image 
imageObj.src = "http://www.blog.jonnycornwell.com/wp-content/uploads/2012/07/Smoke10.png"; 

// A function to create a particle object. 
function Particle(context) { 

    // Set the initial x and y positions 
    this.x = 0; 
    this.y = 0; 

    // Set the initial velocity 
    this.xVelocity = 0; 
    this.yVelocity = 0; 

    // Set the radius 
    this.radius = 5; 

    // Store the context which will be used to draw the particle 
    this.context = context; 

    // The function to draw the particle on the canvas. 
    this.draw = function() { 

     // If an image is set draw it 
     if(this.image){ 
      this.context.drawImage(this.image, this.x-128, this.y-128);   
      // If the image is being rendered do not draw the circle so break out of the draw function     
      return; 
     } 
     // Draw the circle as before, with the addition of using the position and the radius from this object. 
     this.context.beginPath(); 
     this.context.arc(this.x, this.y, this.radius, 0, 2 * Math.PI, false); 
     this.context.fillStyle = "rgba(0, 255, 255, 1)"; 
     this.context.fill(); 
     this.context.closePath(); 
    }; 

    // Update the particle. 
    this.update = function() { 
     // Update the position of the particle with the addition of the velocity. 
     this.x += this.xVelocity; 
     this.y += this.yVelocity; 

     // Check if has crossed the right edge 
     if (this.x >= canvasWidth) { 
      this.xVelocity = -this.xVelocity; 
      this.x = canvasWidth; 
     } 
     // Check if has crossed the left edge 
     else if (this.x <= 0) { 
      this.xVelocity = -this.xVelocity; 
      this.x = 0; 
     } 

     // Check if has crossed the bottom edge 
     if (this.y >= canvasHeight) { 
      this.yVelocity = -this.yVelocity; 
      this.y = canvasHeight; 
     } 

     // Check if has crossed the top edge 
     else if (this.y <= 0) { 
      this.yVelocity = -this.yVelocity; 
      this.y = 0; 
     } 
    }; 

    // A function to set the position of the particle. 
    this.setPosition = function(x, y) { 
     this.x = x; 
     this.y = y; 
    }; 

    // Function to set the velocity. 
    this.setVelocity = function(x, y) { 
     this.xVelocity = x; 
     this.yVelocity = y; 
    }; 

    this.setImage = function(image){ 
     this.image = image; 
    } 
} 

// A function to generate a random number between 2 values 
function generateRandom(min, max){ 
    return Math.random() * (max - min) + min; 
} 

// The canvas context if it is defined. 
var context; 

// Initialise the scene and set the context if possible 
function init() { 
    var canvas = document.getElementById('myCanvas'); 
    if (canvas.getContext) { 

     // Set the context variable so it can be re-used 
     context = canvas.getContext('2d'); 

     // Create the particles and set their initial positions and velocities 
     for(var i=0; i < particleCount; ++i){ 
      var particle = new Particle(context); 

      // Set the position to be inside the canvas bounds 
      particle.setPosition(generateRandom(0, canvasWidth), generateRandom(0, canvasHeight)); 

      // Set the initial velocity to be either random and either negative or positive 
      particle.setVelocity(generateRandom(-maxVelocity, maxVelocity), generateRandom(-maxVelocity, maxVelocity)); 
      particles.push(particle);    
     } 
    } 
    else { 
     alert("Please use a modern browser"); 
    } 
} 

// The function to draw the scene 
function draw() { 
    // Clear the drawing surface and fill it with a black background 
    context.fillStyle = "rgba(0, 0, 0, 0.5)"; 
    context.fillRect(0, 0, 1366, 768); 

    // Go through all of the particles and draw them. 
    particles.forEach(function(particle) { 
     particle.draw(); 
    }); 
} 

// Update the scene 
function update() { 
    particles.forEach(function(particle) { 
     particle.update(); 
    }); 
} 

// Initialize the scene 
init(); 

// If the context is set then we can draw the scene (if not then the browser does not support canvas) 
if (context) { 
    setInterval(function() { 
     // Update the scene befoe drawing 
     update(); 

     // Draw the scene 
     draw(); 
    }, 1000/targetFPS); 
} 
});//]]> 

</script> 









<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
</head> 
<body class=' wsite-theme-light'> 
<div id="wrapper"> 
    <div class="bg-wrapper"> 
     <div id="header"> 
      <div id="sitename" class="sitetitle">ZOMBIEZ, A UNIQUE GAMEMODE</div> 
     </div> 
        <div id="startcontainer"> 
          <script type="text/javascript" src="/files/theme/smoke_effect.js"></script> 
          <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
          <script src="/files/theme/smoke_effect.js"></script> 
          <img id="mainscreenimage" src="http://gamershavennews.com/wp-content/uploads/2011/12/gm_construct0003.jpeg" alt="" /> 
          <canvas id="myCanvas" width="1366" height="768"></canvas> 
          <div id="DIV_1"> 
           <a href="#content" id="A_2"></a> 
          </div> 

        </div> 
     <div id="content-wrapper"> 
     <div id="content"> 
     <div id="intro"> 
        <script type="text/javascript"> 
         (function() { 
         var img = document.getElementById('startcontainer').firstChild; 
         var height = $(window).height(); 
          img.onload = function() { 
           if(img.height > img.width) { 
            //img.height = '100%'; 
            img.height = height; 
            img.width = 'auto'; 
           } 
          }; 
         }()); 
        </script> 
      </div> 




      {content} 
      </div> 
     </div> 
    </div> 
    <div id="footer"> 
     <div id="footer-content">{footer}</div> 
    </div> 
</div> 
<div style='display:none'>{title}</div> 
<div style='display:none'>{menu}</div> 
</body> 
</html> 
+0

任何你到現在爲止嘗試過的東西? – V31

+0

我試着用這個小提琴,但它沒有工作.. http://jsfiddle.net/jonnyc/Ujz4P/5/ – Jordi

回答

1

您需要max-width: 100%來調整圖片的大小

Live Demo

CSS

#myCanvas{ 
    background:black; 
    max-width: 100%; 
    opacity: .5; 
} 

img{ 
    position: absolute; 
    left:0; 
    max-width: 100%; 
} 
+0

我發佈我的代碼,你有什麼想法我需要整合,所以煙是http://gamershavennews.com/wp-content/uploads/2011/12/gm_construct0003.jpeg圖片? – Jordi

+0

@Jordi - http://jsfiddle.net/Ujz4P/1776/ – aldanux

+0

我認爲這是工作,但它不是由於某種原因,我更新了畝代碼..我不知道爲什麼它不工作,我幾乎和小提琴完全一樣。 – Jordi

2

變化最大寬度爲100%

max-width: 100%;